1use super::*;
3
4pub type LLVMDIFlags = ::libc::c_int;
6pub const LLVMDIFlagZero: LLVMDIFlags = 0;
7pub const LLVMDIFlagPrivate: LLVMDIFlags = 1;
8pub const LLVMDIFlagProtected: LLVMDIFlags = 2;
9pub const LLVMDIFlagPublic: LLVMDIFlags = 3;
10pub const LLVMDIFlagFwdDecl: LLVMDIFlags = 1 << 2;
11pub const LLVMDIFlagAppleBlock: LLVMDIFlags = 1 << 3;
12pub const LLVMDIFlagReservedBit4: LLVMDIFlags = 1 << 4;
13pub const LLVMDIFlagVirtual: LLVMDIFlags = 1 << 5;
14pub const LLVMDIFlagArtificial: LLVMDIFlags = 1 << 6;
15pub const LLVMDIFlagExplicit: LLVMDIFlags = 1 << 7;
16pub const LLVMDIFlagPrototyped: LLVMDIFlags = 1 << 8;
17pub const LLVMDIFlagObjcClassComplete: LLVMDIFlags = 1 << 9;
18pub const LLVMDIFlagObjectPointer: LLVMDIFlags = 1 << 10;
19pub const LLVMDIFlagVector: LLVMDIFlags = 1 << 11;
20pub const LLVMDIFlagStaticMember: LLVMDIFlags = 1 << 12;
21pub const LLVMDIFlagLValueReference: LLVMDIFlags = 1 << 13;
22pub const LLVMDIFlagRValueReference: LLVMDIFlags = 1 << 14;
23pub const LLVMDIFlagReserved: LLVMDIFlags = 1 << 15;
24pub const LLVMDIFlagSingleInheritance: LLVMDIFlags = 1 << 16;
25pub const LLVMDIFlagMultipleInheritance: LLVMDIFlags = 2 << 16;
26pub const LLVMDIFlagVirtualInheritance: LLVMDIFlags = 3 << 16;
27pub const LLVMDIFlagIntroducedVirtual: LLVMDIFlags = 1 << 18;
28pub const LLVMDIFlagBitField: LLVMDIFlags = 1 << 19;
29pub const LLVMDIFlagNoReturn: LLVMDIFlags = 1 << 20;
30pub const LLVMDIFlagTypePassByValue: LLVMDIFlags = 1 << 22;
31pub const LLVMDIFlagTypePassByReference: LLVMDIFlags = 1 << 23;
32pub const LLVMDIFlagEnumClass: LLVMDIFlags = 1 << 24;
33pub const LLVMDIFlagThunk: LLVMDIFlags = 1 << 25;
34pub const LLVMDIFlagNonTrivial: LLVMDIFlags = 1 << 26;
35pub const LLVMDIFlagBigendian: LLVMDIFlags = 1 << 27;
36pub const LLVMDIFlagLittleEndian: LLVMDIFlags = 1 << 28;
37pub const LLVMDIFlagIndirectVirtualBase: LLVMDIFlags = (1 << 2) | (1 << 5);
38pub const LLVMDIFlagAccessibility: LLVMDIFlags =
39 LLVMDIFlagProtected | LLVMDIFlagPrivate | LLVMDIFlagPublic;
40pub const LLVMDIFlagPtrToMemberRep: LLVMDIFlags =
41 LLVMDIFlagSingleInheritance | LLVMDIFlagMultipleInheritance | LLVMDIFlagVirtualInheritance;
42
43#[repr(C)]
45#[derive(Debug)]
46pub enum LLVMDWARFSourceLanguage {
47 LLVMDWARFSourceLanguageC89,
48 LLVMDWARFSourceLanguageC,
49 LLVMDWARFSourceLanguageAda83,
50 LLVMDWARFSourceLanguageC_plus_plus,
51 LLVMDWARFSourceLanguageCobol74,
52 LLVMDWARFSourceLanguageCobol85,
53 LLVMDWARFSourceLanguageFortran77,
54 LLVMDWARFSourceLanguageFortran90,
55 LLVMDWARFSourceLanguagePascal83,
56 LLVMDWARFSourceLanguageModula2,
57 LLVMDWARFSourceLanguageJava,
59 LLVMDWARFSourceLanguageC99,
60 LLVMDWARFSourceLanguageAda95,
61 LLVMDWARFSourceLanguageFortran95,
62 LLVMDWARFSourceLanguagePLI,
63 LLVMDWARFSourceLanguageObjC,
64 LLVMDWARFSourceLanguageObjC_plus_plus,
65 LLVMDWARFSourceLanguageUPC,
66 LLVMDWARFSourceLanguageD,
67 LLVMDWARFSourceLanguagePython,
69 LLVMDWARFSourceLanguageOpenCL,
71 LLVMDWARFSourceLanguageGo,
72 LLVMDWARFSourceLanguageModula3,
73 LLVMDWARFSourceLanguageHaskell,
74 LLVMDWARFSourceLanguageC_plus_plus_03,
75 LLVMDWARFSourceLanguageC_plus_plus_11,
76 LLVMDWARFSourceLanguageOCaml,
77 LLVMDWARFSourceLanguageRust,
78 LLVMDWARFSourceLanguageC11,
79 LLVMDWARFSourceLanguageSwift,
80 LLVMDWARFSourceLanguageJulia,
81 LLVMDWARFSourceLanguageDylan,
82 LLVMDWARFSourceLanguageC_plus_plus_14,
83 LLVMDWARFSourceLanguageFortran03,
84 LLVMDWARFSourceLanguageFortran08,
85 LLVMDWARFSourceLanguageRenderScript,
86 LLVMDWARFSourceLanguageBLISS,
87 LLVMDWARFSourceLanguageKotlin,
88 LLVMDWARFSourceLanguageZig,
89 LLVMDWARFSourceLanguageCrystal,
90 LLVMDWARFSourceLanguageC_plus_plus_17,
91 LLVMDWARFSourceLanguageC_plus_plus_20,
92 LLVMDWARFSourceLanguageC17,
93 LLVMDWARFSourceLanguageFortran18,
94 LLVMDWARFSourceLanguageAda2005,
95 LLVMDWARFSourceLanguageAda2012,
96 LLVMDWARFSourceLanguageHIP,
97 LLVMDWARFSourceLanguageAssembly,
98 LLVMDWARFSourceLanguageC_sharp,
99 LLVMDWARFSourceLanguageMojo,
100 LLVMDWARFSourceLanguageGLSL,
101 LLVMDWARFSourceLanguageGLSL_ES,
102 LLVMDWARFSourceLanguageHLSL,
103 LLVMDWARFSourceLanguageOpenCL_CPP,
104 LLVMDWARFSourceLanguageCPP_for_OpenCL,
105 LLVMDWARFSourceLanguageSYCL,
106 LLVMDWARFSourceLanguageRuby,
107 LLVMDWARFSourceLanguageMove,
108 LLVMDWARFSourceLanguageHylo,
109 LLVMDWARFSourceLanguageMips_Assembler,
111 LLVMDWARFSourceLanguageGOOGLE_RenderScript,
112 LLVMDWARFSourceLanguageBORLAND_Delphi,
113}
114
115#[repr(C)]
117#[derive(Debug)]
118pub enum LLVMDWARFEmissionKind {
119 LLVMDWARFEmissionKindNone = 0,
120 LLVMDWARFEmissionKindFull,
121 LLVMDWARFEmissionKindLineTablesOnly,
122}
123
124#[repr(C)]
125#[derive(Debug)]
126pub enum LLVMMetadataKind {
127 LLVMMDStringMetadataKind,
128 LLVMConstantAsMetadataMetadataKind,
129 LLVMLocalAsMetadataMetadataKind,
130 LLVMDistinctMDOperandPlaceholderMetadataKind,
131 LLVMMDTupleMetadataKind,
132 LLVMDILocationMetadataKind,
133 LLVMDIExpressionMetadataKind,
134 LLVMDIGlobalVariableExpressionMetadataKind,
135 LLVMGenericDINodeMetadataKind,
136 LLVMDISubrangeMetadataKind,
137 LLVMDIEnumeratorMetadataKind,
138 LLVMDIBasicTypeMetadataKind,
139 LLVMDIDerivedTypeMetadataKind,
140 LLVMDICompositeTypeMetadataKind,
141 LLVMDISubroutineTypeMetadataKind,
142 LLVMDIFileMetadataKind,
143 LLVMDICompileUnitMetadataKind,
144 LLVMDISubprogramMetadataKind,
145 LLVMDILexicalBlockMetadataKind,
146 LLVMDILexicalBlockFileMetadataKind,
147 LLVMDINamespaceMetadataKind,
148 LLVMDIModuleMetadataKind,
149 LLVMDITemplateTypeParameterMetadataKind,
150 LLVMDITemplateValueParameterMetadataKind,
151 LLVMDIGlobalVariableMetadataKind,
152 LLVMDILocalVariableMetadataKind,
153 LLVMDILabelMetadataKind,
154 LLVMDIObjCPropertyMetadataKind,
155 LLVMDIImportedEntityMetadataKind,
156 LLVMDIMacroMetadataKind,
157 LLVMDIMacroFileMetadataKind,
158 LLVMDICommonBlockMetadataKind,
159 LLVMDIStringTypeMetadataKind,
160 LLVMDIGenericSubrangeMetadataKind,
161 LLVMDIArgListMetadataKind,
162 LLVMDIAssignIDMetadataKind,
163}
164
165pub type LLVMDWARFTypeEncoding = ::libc::c_uint;
166
167#[repr(C)]
168#[derive(Debug)]
169pub enum LLVMDWARFMacinfoRecordType {
170 LLVMDWARFMacinfoRecordTypeDefine = 0x01,
171 LLVMDWARFMacinfoRecordTypeMacro = 0x02,
172 LLVMDWARFMacinfoRecordTypeStartFile = 0x03,
173 LLVMDWARFMacinfoRecordTypeEndFile = 0x04,
174 LLVMDWARFMacinfoRecordTypeVendorExt = 0xff,
175}
176
177extern "C" {
178 pub fn LLVMDebugMetadataVersion() -> ::libc::c_uint;
180 pub fn LLVMGetModuleDebugMetadataVersion(Module: LLVMModuleRef) -> ::libc::c_uint;
182 pub fn LLVMStripModuleDebugInfo(Module: LLVMModuleRef) -> LLVMBool;
184 pub fn LLVMCreateDIBuilderDisallowUnresolved(M: LLVMModuleRef) -> LLVMDIBuilderRef;
186 pub fn LLVMCreateDIBuilder(M: LLVMModuleRef) -> LLVMDIBuilderRef;
188 pub fn LLVMDisposeDIBuilder(Builder: LLVMDIBuilderRef);
192 pub fn LLVMDIBuilderFinalize(Builder: LLVMDIBuilderRef);
194 pub fn LLVMDIBuilderFinalizeSubprogram(Builder: LLVMDIBuilderRef, Subprogram: LLVMMetadataRef);
197 pub fn LLVMDIBuilderCreateCompileUnit(
198 Builder: LLVMDIBuilderRef,
199 Lang: LLVMDWARFSourceLanguage,
200 FileRef: LLVMMetadataRef,
201 Producer: *const ::libc::c_char,
202 ProducerLen: ::libc::size_t,
203 isOptimized: LLVMBool,
204 Flags: *const ::libc::c_char,
205 FlagsLen: ::libc::size_t,
206 RuntimeVer: ::libc::c_uint,
207 SplitName: *const ::libc::c_char,
208 SplitNameLen: ::libc::size_t,
209 Kind: LLVMDWARFEmissionKind,
210 DWOId: ::libc::c_uint,
211 SplitDebugInlining: LLVMBool,
212 DebugInfoForProfiling: LLVMBool,
213 SysRoot: *const ::libc::c_char,
214 SysRootLen: ::libc::size_t,
215 SDK: *const ::libc::c_char,
216 SDKLen: ::libc::size_t,
217 ) -> LLVMMetadataRef;
218 pub fn LLVMDIBuilderCreateFile(
220 Builder: LLVMDIBuilderRef,
221 Filename: *const ::libc::c_char,
222 FilenameLen: ::libc::size_t,
223 Directory: *const ::libc::c_char,
224 DirectoryLen: ::libc::size_t,
225 ) -> LLVMMetadataRef;
226
227 pub fn LLVMDIBuilderCreateModule(
229 Builder: LLVMDIBuilderRef,
230 ParentScope: LLVMMetadataRef,
231 Name: *const ::libc::c_char,
232 NameLen: ::libc::size_t,
233 ConfigMacros: *const ::libc::c_char,
234 ConfigMacrosLen: ::libc::size_t,
235 IncludePath: *const ::libc::c_char,
236 IncludePathLen: ::libc::size_t,
237 APINotesFile: *const ::libc::c_char,
238 APINotesFileLen: ::libc::size_t,
239 ) -> LLVMMetadataRef;
240
241 pub fn LLVMDIBuilderCreateNameSpace(
243 Builder: LLVMDIBuilderRef,
244 ParentScope: LLVMMetadataRef,
245 Name: *const ::libc::c_char,
246 NameLen: ::libc::size_t,
247 ExportSymbols: LLVMBool,
248 ) -> LLVMMetadataRef;
249
250 pub fn LLVMDIBuilderCreateFunction(
252 Builder: LLVMDIBuilderRef,
253 Scope: LLVMMetadataRef,
254 Name: *const ::libc::c_char,
255 NameLen: ::libc::size_t,
256 LinkageName: *const ::libc::c_char,
257 LinkageNameLen: ::libc::size_t,
258 File: LLVMMetadataRef,
259 LineNo: ::libc::c_uint,
260 Ty: LLVMMetadataRef,
261 IsLocalToUnit: LLVMBool,
262 IsDefinition: LLVMBool,
263 ScopeLine: ::libc::c_uint,
264 Flags: LLVMDIFlags,
265 IsOptimized: LLVMBool,
266 ) -> LLVMMetadataRef;
267
268 pub fn LLVMDIBuilderCreateLexicalBlock(
270 Builder: LLVMDIBuilderRef,
271 Scope: LLVMMetadataRef,
272 File: LLVMMetadataRef,
273 Line: ::libc::c_uint,
274 Column: ::libc::c_uint,
275 ) -> LLVMMetadataRef;
276
277 pub fn LLVMDIBuilderCreateLexicalBlockFile(
279 Builder: LLVMDIBuilderRef,
280 Scope: LLVMMetadataRef,
281 File: LLVMMetadataRef,
282 Discriminator: ::libc::c_uint,
283 ) -> LLVMMetadataRef;
284
285 pub fn LLVMDIBuilderCreateImportedModuleFromNamespace(
287 Builder: LLVMDIBuilderRef,
288 Scope: LLVMMetadataRef,
289 NS: LLVMMetadataRef,
290 File: LLVMMetadataRef,
291 Line: ::libc::c_uint,
292 ) -> LLVMMetadataRef;
293
294 pub fn LLVMDIBuilderCreateImportedModuleFromAlias(
296 Builder: LLVMDIBuilderRef,
297 Scope: LLVMMetadataRef,
298 ImportedEntity: LLVMMetadataRef,
299 File: LLVMMetadataRef,
300 Line: ::libc::c_uint,
301 Elements: *mut LLVMMetadataRef,
302 NumElements: ::libc::c_uint,
303 ) -> LLVMMetadataRef;
304
305 pub fn LLVMDIBuilderCreateImportedModuleFromModule(
307 Builder: LLVMDIBuilderRef,
308 Scope: LLVMMetadataRef,
309 M: LLVMMetadataRef,
310 File: LLVMMetadataRef,
311 Line: ::libc::c_uint,
312 Elements: *mut LLVMMetadataRef,
313 NumElements: ::libc::c_uint,
314 ) -> LLVMMetadataRef;
315
316 pub fn LLVMDIBuilderCreateImportedDeclaration(
320 Builder: LLVMDIBuilderRef,
321 Scope: LLVMMetadataRef,
322 Decl: LLVMMetadataRef,
323 File: LLVMMetadataRef,
324 Line: ::libc::c_uint,
325 Name: *const ::libc::c_char,
326 NameLen: ::libc::size_t,
327 Elements: *mut LLVMMetadataRef,
328 NumElements: ::libc::c_uint,
329 ) -> LLVMMetadataRef;
330
331 pub fn LLVMDIBuilderCreateDebugLocation(
333 Ctx: LLVMContextRef,
334 Line: ::libc::c_uint,
335 Column: ::libc::c_uint,
336 Scope: LLVMMetadataRef,
337 InlinedAt: LLVMMetadataRef,
338 ) -> LLVMMetadataRef;
339
340 pub fn LLVMDILocationGetLine(Location: LLVMMetadataRef) -> ::libc::c_uint;
342
343 pub fn LLVMDILocationGetColumn(Location: LLVMMetadataRef) -> ::libc::c_uint;
345
346 pub fn LLVMDILocationGetScope(Location: LLVMMetadataRef) -> LLVMMetadataRef;
348
349 pub fn LLVMDILocationGetInlinedAt(Location: LLVMMetadataRef) -> LLVMMetadataRef;
351
352 pub fn LLVMDIScopeGetFile(Scope: LLVMMetadataRef) -> LLVMMetadataRef;
354
355 pub fn LLVMDIFileGetDirectory(
357 File: LLVMMetadataRef,
358 Len: *mut ::libc::c_uint,
359 ) -> *const ::libc::c_char;
360
361 pub fn LLVMDIFileGetFilename(
363 File: LLVMMetadataRef,
364 Len: *mut ::libc::c_uint,
365 ) -> *const ::libc::c_char;
366
367 pub fn LLVMDIFileGetSource(
369 File: LLVMMetadataRef,
370 Len: *mut ::libc::c_uint,
371 ) -> *const ::libc::c_char;
372
373 pub fn LLVMDIBuilderGetOrCreateTypeArray(
375 Builder: LLVMDIBuilderRef,
376 Data: *mut LLVMMetadataRef,
377 NumElements: ::libc::size_t,
378 ) -> LLVMMetadataRef;
379
380 pub fn LLVMDIBuilderCreateSubroutineType(
382 Builder: LLVMDIBuilderRef,
383 File: LLVMMetadataRef,
384 ParameterTypes: *mut LLVMMetadataRef,
385 NumParameterTypes: ::libc::c_uint,
386 Flags: LLVMDIFlags,
387 ) -> LLVMMetadataRef;
388
389 pub fn LLVMDIBuilderCreateMacro(
390 Builder: LLVMDIBuilderRef,
391 ParentMacroFile: LLVMMetadataRef,
392 Line: ::libc::c_uint,
393 RecordType: LLVMDWARFMacinfoRecordType,
394 Name: *const ::libc::c_char,
395 NameLen: usize,
396 Value: *const ::libc::c_char,
397 ValueLen: usize,
398 ) -> LLVMMetadataRef;
399
400 pub fn LLVMDIBuilderCreateTempMacroFile(
401 Builder: LLVMDIBuilderRef,
402 ParentMacroFile: LLVMMetadataRef,
403 Line: ::libc::c_uint,
404 File: LLVMMetadataRef,
405 ) -> LLVMMetadataRef;
406
407 pub fn LLVMDIBuilderCreateEnumerator(
409 Builder: LLVMDIBuilderRef,
410 Name: *const ::libc::c_char,
411 NameLen: ::libc::size_t,
412 Value: i64,
413 IsUnsigned: LLVMBool,
414 ) -> LLVMMetadataRef;
415
416 pub fn LLVMDIBuilderCreateEnumerationType(
418 Builder: LLVMDIBuilderRef,
419 Scope: LLVMMetadataRef,
420 Name: *const ::libc::c_char,
421 NameLen: ::libc::size_t,
422 File: LLVMMetadataRef,
423 LineNumber: ::libc::c_uint,
424 SizeInBits: u64,
425 AlignInBits: u32,
426 Elements: *mut LLVMMetadataRef,
427 NumElements: ::libc::c_uint,
428 ClassTy: LLVMMetadataRef,
429 ) -> LLVMMetadataRef;
430
431 pub fn LLVMDIBuilderCreateUnionType(
433 Builder: LLVMDIBuilderRef,
434 Scope: LLVMMetadataRef,
435 Name: *const ::libc::c_char,
436 NameLen: ::libc::size_t,
437 File: LLVMMetadataRef,
438 LineNumber: ::libc::c_uint,
439 SizeInBits: u64,
440 AlignInBits: u32,
441 Flags: LLVMDIFlags,
442 Elements: *mut LLVMMetadataRef,
443 NumElements: ::libc::c_uint,
444 RunTimeLang: ::libc::c_uint,
445 UniqueId: *const ::libc::c_char,
446 UniqueIdLen: ::libc::size_t,
447 ) -> LLVMMetadataRef;
448
449 pub fn LLVMDIBuilderCreateArrayType(
451 Builder: LLVMDIBuilderRef,
452 Size: u64,
453 AlignInBits: u32,
454 Ty: LLVMMetadataRef,
455 Subscripts: *mut LLVMMetadataRef,
456 NumSubscripts: ::libc::c_uint,
457 ) -> LLVMMetadataRef;
458
459 pub fn LLVMDIBuilderCreateVectorType(
461 Builder: LLVMDIBuilderRef,
462 Size: u64,
463 AlignInBits: u32,
464 Ty: LLVMMetadataRef,
465 Subscripts: *mut LLVMMetadataRef,
466 NumSubscripts: ::libc::c_uint,
467 ) -> LLVMMetadataRef;
468
469 pub fn LLVMDIBuilderCreateUnspecifiedType(
471 Builder: LLVMDIBuilderRef,
472 Name: *const ::libc::c_char,
473 NameLen: ::libc::size_t,
474 ) -> LLVMMetadataRef;
475
476 pub fn LLVMDIBuilderCreateBasicType(
478 Builder: LLVMDIBuilderRef,
479 Name: *const ::libc::c_char,
480 NameLen: ::libc::size_t,
481 SizeInBits: u64,
482 Encoding: LLVMDWARFTypeEncoding,
483 Flags: LLVMDIFlags,
484 ) -> LLVMMetadataRef;
485
486 pub fn LLVMDIBuilderCreatePointerType(
488 Builder: LLVMDIBuilderRef,
489 PointeeTy: LLVMMetadataRef,
490 SizeInBits: u64,
491 AlignInBits: u32,
492 AddressSpace: ::libc::c_uint,
493 Name: *const ::libc::c_char,
494 NameLen: ::libc::size_t,
495 ) -> LLVMMetadataRef;
496
497 pub fn LLVMDIBuilderCreateStructType(
499 Builder: LLVMDIBuilderRef,
500 Scope: LLVMMetadataRef,
501 Name: *const ::libc::c_char,
502 NameLen: ::libc::size_t,
503 File: LLVMMetadataRef,
504 LineNumber: ::libc::c_uint,
505 SizeInBits: u64,
506 AlignInBits: u32,
507 Flags: LLVMDIFlags,
508 DerivedFrom: LLVMMetadataRef,
509 Elements: *mut LLVMMetadataRef,
510 NumElements: ::libc::c_uint,
511 RunTimeLang: ::libc::c_uint,
512 VTableHolder: LLVMMetadataRef,
513 UniqueId: *const ::libc::c_char,
514 UniqueIdLen: ::libc::size_t,
515 ) -> LLVMMetadataRef;
516
517 pub fn LLVMDIBuilderCreateMemberType(
519 Builder: LLVMDIBuilderRef,
520 Scope: LLVMMetadataRef,
521 Name: *const ::libc::c_char,
522 NameLen: ::libc::size_t,
523 File: LLVMMetadataRef,
524 LineNo: ::libc::c_uint,
525 SizeInBits: u64,
526 AlignInBits: u32,
527 OffsetInBits: u64,
528 Flags: LLVMDIFlags,
529 Ty: LLVMMetadataRef,
530 ) -> LLVMMetadataRef;
531
532 pub fn LLVMDIBuilderCreateStaticMemberType(
534 Builder: LLVMDIBuilderRef,
535 Scope: LLVMMetadataRef,
536 Name: *const ::libc::c_char,
537 NameLen: ::libc::size_t,
538 File: LLVMMetadataRef,
539 LineNumber: ::libc::c_uint,
540 Type: LLVMMetadataRef,
541 Flags: LLVMDIFlags,
542 ConstantVal: LLVMValueRef,
543 AlignInBits: u32,
544 ) -> LLVMMetadataRef;
545
546 pub fn LLVMDIBuilderCreateMemberPointerType(
548 Builder: LLVMDIBuilderRef,
549 PointeeType: LLVMMetadataRef,
550 ClassType: LLVMMetadataRef,
551 SizeInBits: u64,
552 AlignInBits: u32,
553 Flags: LLVMDIFlags,
554 ) -> LLVMMetadataRef;
555
556 pub fn LLVMDIBuilderCreateObjCIVar(
558 Builder: LLVMDIBuilderRef,
559 Name: *const ::libc::c_char,
560 NameLen: ::libc::size_t,
561 File: LLVMMetadataRef,
562 LineNo: ::libc::c_uint,
563 SizeInBits: u64,
564 AlignInBits: u32,
565 OffsetInBits: u64,
566 Flags: LLVMDIFlags,
567 Ty: LLVMMetadataRef,
568 PropertyNode: LLVMMetadataRef,
569 ) -> LLVMMetadataRef;
570
571 pub fn LLVMDIBuilderCreateObjCProperty(
573 Builder: LLVMDIBuilderRef,
574 Name: *const ::libc::c_char,
575 NameLen: ::libc::size_t,
576 File: LLVMMetadataRef,
577 LineNo: ::libc::c_uint,
578 GetterName: *const ::libc::c_char,
579 GetterNameLen: ::libc::size_t,
580 SetterName: *const ::libc::c_char,
581 SetterNameLen: ::libc::size_t,
582 PropertyAttributes: ::libc::c_uint,
583 Ty: LLVMMetadataRef,
584 ) -> LLVMMetadataRef;
585
586 pub fn LLVMDIBuilderCreateObjectPointerType(
588 Builder: LLVMDIBuilderRef,
589 Type: LLVMMetadataRef,
590 ) -> LLVMMetadataRef;
591
592 pub fn LLVMDIBuilderCreateQualifiedType(
594 Builder: LLVMDIBuilderRef,
595 Tag: ::libc::c_uint,
596 Type: LLVMMetadataRef,
597 ) -> LLVMMetadataRef;
598
599 pub fn LLVMDIBuilderCreateReferenceType(
601 Builder: LLVMDIBuilderRef,
602 Tag: ::libc::c_uint,
603 Type: LLVMMetadataRef,
604 ) -> LLVMMetadataRef;
605
606 pub fn LLVMDIBuilderCreateNullPtrType(Builder: LLVMDIBuilderRef) -> LLVMMetadataRef;
608
609 pub fn LLVMDIBuilderCreateTypedef(
611 Builder: LLVMDIBuilderRef,
612 Type: LLVMMetadataRef,
613 Name: *const ::libc::c_char,
614 NameLen: ::libc::size_t,
615 File: LLVMMetadataRef,
616 LineNo: ::libc::c_uint,
617 Scope: LLVMMetadataRef,
618 AlignInBits: u32,
619 ) -> LLVMMetadataRef;
620
621 pub fn LLVMDIBuilderCreateInheritance(
623 Builder: LLVMDIBuilderRef,
624 Ty: LLVMMetadataRef,
625 BaseTy: LLVMMetadataRef,
626 BaseOffset: u64,
627 VBPtrOffset: u32,
628 Flags: LLVMDIFlags,
629 ) -> LLVMMetadataRef;
630
631 pub fn LLVMDIBuilderCreateForwardDecl(
633 Builder: LLVMDIBuilderRef,
634 Tag: ::libc::c_uint,
635 Name: *const ::libc::c_char,
636 NameLen: ::libc::size_t,
637 Scope: LLVMMetadataRef,
638 File: LLVMMetadataRef,
639 Line: ::libc::c_uint,
640 RuntimeLang: ::libc::c_uint,
641 SizeInBits: u64,
642 AlignInBits: u32,
643 UniqueIdentifier: *const ::libc::c_char,
644 UniqueIdentifierLen: ::libc::size_t,
645 ) -> LLVMMetadataRef;
646
647 pub fn LLVMDIBuilderCreateReplaceableCompositeType(
649 Builder: LLVMDIBuilderRef,
650 Tag: ::libc::c_uint,
651 Name: *const ::libc::c_char,
652 NameLen: ::libc::size_t,
653 Scope: LLVMMetadataRef,
654 File: LLVMMetadataRef,
655 Line: ::libc::c_uint,
656 RuntimeLang: ::libc::c_uint,
657 SizeInBits: u64,
658 AlignInBits: u32,
659 Flags: LLVMDIFlags,
660 UniqueIdentifier: *const ::libc::c_char,
661 UniqueIdentifierLen: ::libc::size_t,
662 ) -> LLVMMetadataRef;
663
664 pub fn LLVMDIBuilderCreateBitFieldMemberType(
666 Builder: LLVMDIBuilderRef,
667 Scope: LLVMMetadataRef,
668 Name: *const ::libc::c_char,
669 NameLen: ::libc::size_t,
670 File: LLVMMetadataRef,
671 LineNumber: ::libc::c_uint,
672 SizeInBits: u64,
673 OffsetInBits: u64,
674 StorageOffsetInBits: u64,
675 Flags: LLVMDIFlags,
676 Type: LLVMMetadataRef,
677 ) -> LLVMMetadataRef;
678
679 pub fn LLVMDIBuilderCreateClassType(
681 Builder: LLVMDIBuilderRef,
682 Scope: LLVMMetadataRef,
683 Name: *const ::libc::c_char,
684 NameLen: ::libc::size_t,
685 File: LLVMMetadataRef,
686 LineNumber: ::libc::c_uint,
687 SizeInBits: u64,
688 AlignInBits: u32,
689 OffsetInBits: u64,
690 Flags: LLVMDIFlags,
691 DerivedFrom: LLVMMetadataRef,
692 Elements: *mut LLVMMetadataRef,
693 NumElements: ::libc::c_uint,
694 VTableHolder: LLVMMetadataRef,
695 TemplateParamsNode: LLVMMetadataRef,
696 UniqueIdentifier: *const ::libc::c_char,
697 UniqueIdentifierLen: ::libc::size_t,
698 ) -> LLVMMetadataRef;
699
700 pub fn LLVMDIBuilderCreateArtificialType(
702 Builder: LLVMDIBuilderRef,
703 Type: LLVMMetadataRef,
704 ) -> LLVMMetadataRef;
705
706 pub fn LLVMDITypeGetName(
708 DType: LLVMMetadataRef,
709 Length: *mut ::libc::size_t,
710 ) -> *const ::libc::c_char;
711
712 pub fn LLVMDITypeGetSizeInBits(DType: LLVMMetadataRef) -> u64;
714
715 pub fn LLVMDITypeGetOffsetInBits(DType: LLVMMetadataRef) -> u64;
717
718 pub fn LLVMDITypeGetAlignInBits(DType: LLVMMetadataRef) -> u32;
720
721 pub fn LLVMDITypeGetLine(DType: LLVMMetadataRef) -> ::libc::c_uint;
723
724 pub fn LLVMDITypeGetFlags(DType: LLVMMetadataRef) -> LLVMDIFlags;
726
727 pub fn LLVMDIBuilderGetOrCreateSubrange(
729 Builder: LLVMDIBuilderRef,
730 LowerBound: i64,
731 Count: i64,
732 ) -> LLVMMetadataRef;
733
734 pub fn LLVMDIBuilderGetOrCreateArray(
736 Builder: LLVMDIBuilderRef,
737 Data: *mut LLVMMetadataRef,
738 NumElements: ::libc::size_t,
739 ) -> LLVMMetadataRef;
740
741 pub fn LLVMDIBuilderCreateExpression(
743 Builder: LLVMDIBuilderRef,
744 Addr: *mut u64,
745 Length: ::libc::size_t,
746 ) -> LLVMMetadataRef;
747
748 pub fn LLVMDIBuilderCreateConstantValueExpression(
750 Builder: LLVMDIBuilderRef,
751 Value: u64,
752 ) -> LLVMMetadataRef;
753
754 pub fn LLVMDIBuilderCreateGlobalVariableExpression(
756 Builder: LLVMDIBuilderRef,
757 Scope: LLVMMetadataRef,
758 Name: *const ::libc::c_char,
759 NameLen: ::libc::size_t,
760 Linkage: *const ::libc::c_char,
761 LinkLen: ::libc::size_t,
762 File: LLVMMetadataRef,
763 LineNo: ::libc::c_uint,
764 Ty: LLVMMetadataRef,
765 LocalToUnit: LLVMBool,
766 Expr: LLVMMetadataRef,
767 Decl: LLVMMetadataRef,
768 AlignInBits: u32,
769 ) -> LLVMMetadataRef;
770
771 pub fn LLVMGetDINodeTag(MD: LLVMMetadataRef) -> u16;
773
774 pub fn LLVMDIGlobalVariableExpressionGetVariable(GVE: LLVMMetadataRef) -> LLVMMetadataRef;
776
777 pub fn LLVMDIGlobalVariableExpressionGetExpression(GVE: LLVMMetadataRef) -> LLVMMetadataRef;
779
780 pub fn LLVMDIVariableGetFile(Var: LLVMMetadataRef) -> LLVMMetadataRef;
782
783 pub fn LLVMDIVariableGetScope(Var: LLVMMetadataRef) -> LLVMMetadataRef;
785
786 pub fn LLVMDIVariableGetLine(Var: LLVMMetadataRef) -> ::libc::c_uint;
788
789 pub fn LLVMTemporaryMDNode(
791 Ctx: LLVMContextRef,
792 Data: *mut LLVMMetadataRef,
793 NumElements: ::libc::size_t,
794 ) -> LLVMMetadataRef;
795
796 pub fn LLVMDisposeTemporaryMDNode(TempNode: LLVMMetadataRef);
798
799 pub fn LLVMMetadataReplaceAllUsesWith(
801 TempTargetMetadata: LLVMMetadataRef,
802 Replacement: LLVMMetadataRef,
803 );
804
805 pub fn LLVMDIBuilderCreateTempGlobalVariableFwdDecl(
807 Builder: LLVMDIBuilderRef,
808 Scope: LLVMMetadataRef,
809 Name: *const ::libc::c_char,
810 NameLen: ::libc::size_t,
811 Linkage: *const ::libc::c_char,
812 LnkLen: ::libc::size_t,
813 File: LLVMMetadataRef,
814 LineNo: ::libc::c_uint,
815 Ty: LLVMMetadataRef,
816 LocalToUnit: LLVMBool,
817 Decl: LLVMMetadataRef,
818 AlignInBits: u32,
819 ) -> LLVMMetadataRef;
820
821 pub fn LLVMDIBuilderInsertDeclareRecordBefore(
825 Builder: LLVMDIBuilderRef,
826 Storage: LLVMValueRef,
827 VarInfo: LLVMMetadataRef,
828 Expr: LLVMMetadataRef,
829 DebugLoc: LLVMMetadataRef,
830 Instr: LLVMValueRef,
831 ) -> LLVMDbgRecordRef;
832
833 pub fn LLVMDIBuilderInsertDeclareRecordAtEnd(
839 Builder: LLVMDIBuilderRef,
840 Storage: LLVMValueRef,
841 VarInfo: LLVMMetadataRef,
842 Expr: LLVMMetadataRef,
843 DebugLoc: LLVMMetadataRef,
844 Block: LLVMBasicBlockRef,
845 ) -> LLVMDbgRecordRef;
846
847 pub fn LLVMDIBuilderInsertDbgValueRecordBefore(
851 Builder: LLVMDIBuilderRef,
852 Val: LLVMValueRef,
853 VarInfo: LLVMMetadataRef,
854 Expr: LLVMMetadataRef,
855 DebugLoc: LLVMMetadataRef,
856 Instr: LLVMValueRef,
857 ) -> LLVMDbgRecordRef;
858
859 pub fn LLVMDIBuilderInsertDbgValueRecordAtEnd(
865 Builder: LLVMDIBuilderRef,
866 Val: LLVMValueRef,
867 VarInfo: LLVMMetadataRef,
868 Expr: LLVMMetadataRef,
869 DebugLoc: LLVMMetadataRef,
870 Block: LLVMBasicBlockRef,
871 ) -> LLVMDbgRecordRef;
872
873 pub fn LLVMDIBuilderCreateAutoVariable(
875 Builder: LLVMDIBuilderRef,
876 Scope: LLVMMetadataRef,
877 Name: *const ::libc::c_char,
878 NameLen: ::libc::size_t,
879 File: LLVMMetadataRef,
880 LineNo: ::libc::c_uint,
881 Ty: LLVMMetadataRef,
882 AlwaysPreserve: LLVMBool,
883 Flags: LLVMDIFlags,
884 AlignInBits: u32,
885 ) -> LLVMMetadataRef;
886
887 pub fn LLVMDIBuilderCreateParameterVariable(
889 Builder: LLVMDIBuilderRef,
890 Scope: LLVMMetadataRef,
891 Name: *const ::libc::c_char,
892 NameLen: ::libc::size_t,
893 ArgNo: ::libc::c_uint,
894 File: LLVMMetadataRef,
895 LineNo: ::libc::c_uint,
896 Ty: LLVMMetadataRef,
897 AlwaysPreserve: LLVMBool,
898 Flags: LLVMDIFlags,
899 ) -> LLVMMetadataRef;
900
901 pub fn LLVMGetSubprogram(Func: LLVMValueRef) -> LLVMMetadataRef;
903
904 pub fn LLVMSetSubprogram(Func: LLVMValueRef, SP: LLVMMetadataRef);
906
907 pub fn LLVMDISubprogramGetLine(Subprogram: LLVMMetadataRef) -> ::libc::c_uint;
909
910 pub fn LLVMInstructionGetDebugLoc(Inst: LLVMValueRef) -> LLVMMetadataRef;
912
913 pub fn LLVMInstructionSetDebugLoc(Inst: LLVMValueRef, Loc: LLVMMetadataRef);
915
916 pub fn LLVMGetMetadataKind(Metadata: LLVMMetadataRef) -> LLVMMetadataKind;
918}