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 LLVMDWARFSourceLanguageMojo,
97 LLVMDWARFSourceLanguageMips_Assembler,
99 LLVMDWARFSourceLanguageGOOGLE_RenderScript,
100 LLVMDWARFSourceLanguageBORLAND_Delphi,
101}
102
103#[repr(C)]
105#[derive(Debug)]
106pub enum LLVMDWARFEmissionKind {
107 LLVMDWARFEmissionKindNone = 0,
108 LLVMDWARFEmissionKindFull,
109 LLVMDWARFEmissionKindLineTablesOnly,
110}
111
112#[repr(C)]
113#[derive(Debug)]
114pub enum LLVMMetadataKind {
115 LLVMMDStringMetadataKind,
116 LLVMConstantAsMetadataMetadataKind,
117 LLVMLocalAsMetadataMetadataKind,
118 LLVMDistinctMDOperandPlaceholderMetadataKind,
119 LLVMMDTupleMetadataKind,
120 LLVMDILocationMetadataKind,
121 LLVMDIExpressionMetadataKind,
122 LLVMDIGlobalVariableExpressionMetadataKind,
123 LLVMGenericDINodeMetadataKind,
124 LLVMDISubrangeMetadataKind,
125 LLVMDIEnumeratorMetadataKind,
126 LLVMDIBasicTypeMetadataKind,
127 LLVMDIDerivedTypeMetadataKind,
128 LLVMDICompositeTypeMetadataKind,
129 LLVMDISubroutineTypeMetadataKind,
130 LLVMDIFileMetadataKind,
131 LLVMDICompileUnitMetadataKind,
132 LLVMDISubprogramMetadataKind,
133 LLVMDILexicalBlockMetadataKind,
134 LLVMDILexicalBlockFileMetadataKind,
135 LLVMDINamespaceMetadataKind,
136 LLVMDIModuleMetadataKind,
137 LLVMDITemplateTypeParameterMetadataKind,
138 LLVMDITemplateValueParameterMetadataKind,
139 LLVMDIGlobalVariableMetadataKind,
140 LLVMDILocalVariableMetadataKind,
141 LLVMDILabelMetadataKind,
142 LLVMDIObjCPropertyMetadataKind,
143 LLVMDIImportedEntityMetadataKind,
144 LLVMDIMacroMetadataKind,
145 LLVMDIMacroFileMetadataKind,
146 LLVMDICommonBlockMetadataKind,
147 LLVMDIStringTypeMetadataKind,
148 LLVMDIGenericSubrangeMetadataKind,
149 LLVMDIArgListMetadataKind,
150 LLVMDIAssignIDMetadataKind,
151}
152
153pub type LLVMDWARFTypeEncoding = ::libc::c_uint;
154
155#[repr(C)]
156#[derive(Debug)]
157pub enum LLVMDWARFMacinfoRecordType {
158 LLVMDWARFMacinfoRecordTypeDefine = 0x01,
159 LLVMDWARFMacinfoRecordTypeMacro = 0x02,
160 LLVMDWARFMacinfoRecordTypeStartFile = 0x03,
161 LLVMDWARFMacinfoRecordTypeEndFile = 0x04,
162 LLVMDWARFMacinfoRecordTypeVendorExt = 0xff,
163}
164
165extern "C" {
166 pub fn LLVMDebugMetadataVersion() -> ::libc::c_uint;
168 pub fn LLVMGetModuleDebugMetadataVersion(Module: LLVMModuleRef) -> ::libc::c_uint;
170 pub fn LLVMStripModuleDebugInfo(Module: LLVMModuleRef) -> LLVMBool;
172 pub fn LLVMCreateDIBuilderDisallowUnresolved(M: LLVMModuleRef) -> LLVMDIBuilderRef;
174 pub fn LLVMCreateDIBuilder(M: LLVMModuleRef) -> LLVMDIBuilderRef;
176 pub fn LLVMDisposeDIBuilder(Builder: LLVMDIBuilderRef);
180 pub fn LLVMDIBuilderFinalize(Builder: LLVMDIBuilderRef);
182 pub fn LLVMDIBuilderFinalizeSubprogram(Builder: LLVMDIBuilderRef, Subprogram: LLVMMetadataRef);
185 pub fn LLVMDIBuilderCreateCompileUnit(
186 Builder: LLVMDIBuilderRef,
187 Lang: LLVMDWARFSourceLanguage,
188 FileRef: LLVMMetadataRef,
189 Producer: *const ::libc::c_char,
190 ProducerLen: ::libc::size_t,
191 isOptimized: LLVMBool,
192 Flags: *const ::libc::c_char,
193 FlagsLen: ::libc::size_t,
194 RuntimeVer: ::libc::c_uint,
195 SplitName: *const ::libc::c_char,
196 SplitNameLen: ::libc::size_t,
197 Kind: LLVMDWARFEmissionKind,
198 DWOId: ::libc::c_uint,
199 SplitDebugInlining: LLVMBool,
200 DebugInfoForProfiling: LLVMBool,
201 SysRoot: *const ::libc::c_char,
202 SysRootLen: ::libc::size_t,
203 SDK: *const ::libc::c_char,
204 SDKLen: ::libc::size_t,
205 ) -> LLVMMetadataRef;
206 pub fn LLVMDIBuilderCreateFile(
208 Builder: LLVMDIBuilderRef,
209 Filename: *const ::libc::c_char,
210 FilenameLen: ::libc::size_t,
211 Directory: *const ::libc::c_char,
212 DirectoryLen: ::libc::size_t,
213 ) -> LLVMMetadataRef;
214
215 pub fn LLVMDIBuilderCreateModule(
217 Builder: LLVMDIBuilderRef,
218 ParentScope: LLVMMetadataRef,
219 Name: *const ::libc::c_char,
220 NameLen: ::libc::size_t,
221 ConfigMacros: *const ::libc::c_char,
222 ConfigMacrosLen: ::libc::size_t,
223 IncludePath: *const ::libc::c_char,
224 IncludePathLen: ::libc::size_t,
225 APINotesFile: *const ::libc::c_char,
226 APINotesFileLen: ::libc::size_t,
227 ) -> LLVMMetadataRef;
228
229 pub fn LLVMDIBuilderCreateNameSpace(
231 Builder: LLVMDIBuilderRef,
232 ParentScope: LLVMMetadataRef,
233 Name: *const ::libc::c_char,
234 NameLen: ::libc::size_t,
235 ExportSymbols: LLVMBool,
236 ) -> LLVMMetadataRef;
237
238 pub fn LLVMDIBuilderCreateFunction(
240 Builder: LLVMDIBuilderRef,
241 Scope: LLVMMetadataRef,
242 Name: *const ::libc::c_char,
243 NameLen: ::libc::size_t,
244 LinkageName: *const ::libc::c_char,
245 LinkageNameLen: ::libc::size_t,
246 File: LLVMMetadataRef,
247 LineNo: ::libc::c_uint,
248 Ty: LLVMMetadataRef,
249 IsLocalToUnit: LLVMBool,
250 IsDefinition: LLVMBool,
251 ScopeLine: ::libc::c_uint,
252 Flags: LLVMDIFlags,
253 IsOptimized: LLVMBool,
254 ) -> LLVMMetadataRef;
255
256 pub fn LLVMDIBuilderCreateLexicalBlock(
258 Builder: LLVMDIBuilderRef,
259 Scope: LLVMMetadataRef,
260 File: LLVMMetadataRef,
261 Line: ::libc::c_uint,
262 Column: ::libc::c_uint,
263 ) -> LLVMMetadataRef;
264
265 pub fn LLVMDIBuilderCreateLexicalBlockFile(
267 Builder: LLVMDIBuilderRef,
268 Scope: LLVMMetadataRef,
269 File: LLVMMetadataRef,
270 Discriminator: ::libc::c_uint,
271 ) -> LLVMMetadataRef;
272
273 pub fn LLVMDIBuilderCreateImportedModuleFromNamespace(
275 Builder: LLVMDIBuilderRef,
276 Scope: LLVMMetadataRef,
277 NS: LLVMMetadataRef,
278 File: LLVMMetadataRef,
279 Line: ::libc::c_uint,
280 ) -> LLVMMetadataRef;
281
282 pub fn LLVMDIBuilderCreateImportedModuleFromAlias(
284 Builder: LLVMDIBuilderRef,
285 Scope: LLVMMetadataRef,
286 ImportedEntity: LLVMMetadataRef,
287 File: LLVMMetadataRef,
288 Line: ::libc::c_uint,
289 Elements: *mut LLVMMetadataRef,
290 NumElements: ::libc::c_uint,
291 ) -> LLVMMetadataRef;
292
293 pub fn LLVMDIBuilderCreateImportedModuleFromModule(
295 Builder: LLVMDIBuilderRef,
296 Scope: LLVMMetadataRef,
297 M: LLVMMetadataRef,
298 File: LLVMMetadataRef,
299 Line: ::libc::c_uint,
300 Elements: *mut LLVMMetadataRef,
301 NumElements: ::libc::c_uint,
302 ) -> LLVMMetadataRef;
303
304 pub fn LLVMDIBuilderCreateImportedDeclaration(
308 Builder: LLVMDIBuilderRef,
309 Scope: LLVMMetadataRef,
310 Decl: LLVMMetadataRef,
311 File: LLVMMetadataRef,
312 Line: ::libc::c_uint,
313 Name: *const ::libc::c_char,
314 NameLen: ::libc::size_t,
315 Elements: *mut LLVMMetadataRef,
316 NumElements: ::libc::c_uint,
317 ) -> LLVMMetadataRef;
318
319 pub fn LLVMDIBuilderCreateDebugLocation(
321 Ctx: LLVMContextRef,
322 Line: ::libc::c_uint,
323 Column: ::libc::c_uint,
324 Scope: LLVMMetadataRef,
325 InlinedAt: LLVMMetadataRef,
326 ) -> LLVMMetadataRef;
327
328 pub fn LLVMDILocationGetLine(Location: LLVMMetadataRef) -> ::libc::c_uint;
330
331 pub fn LLVMDILocationGetColumn(Location: LLVMMetadataRef) -> ::libc::c_uint;
333
334 pub fn LLVMDILocationGetScope(Location: LLVMMetadataRef) -> LLVMMetadataRef;
336
337 pub fn LLVMDILocationGetInlinedAt(Location: LLVMMetadataRef) -> LLVMMetadataRef;
339
340 pub fn LLVMDIScopeGetFile(Scope: LLVMMetadataRef) -> LLVMMetadataRef;
342
343 pub fn LLVMDIFileGetDirectory(
345 File: LLVMMetadataRef,
346 Len: *mut ::libc::c_uint,
347 ) -> *const ::libc::c_char;
348
349 pub fn LLVMDIFileGetFilename(
351 File: LLVMMetadataRef,
352 Len: *mut ::libc::c_uint,
353 ) -> *const ::libc::c_char;
354
355 pub fn LLVMDIFileGetSource(
357 File: LLVMMetadataRef,
358 Len: *mut ::libc::c_uint,
359 ) -> *const ::libc::c_char;
360
361 pub fn LLVMDIBuilderGetOrCreateTypeArray(
363 Builder: LLVMDIBuilderRef,
364 Data: *mut LLVMMetadataRef,
365 NumElements: ::libc::size_t,
366 ) -> LLVMMetadataRef;
367
368 pub fn LLVMDIBuilderCreateSubroutineType(
370 Builder: LLVMDIBuilderRef,
371 File: LLVMMetadataRef,
372 ParameterTypes: *mut LLVMMetadataRef,
373 NumParameterTypes: ::libc::c_uint,
374 Flags: LLVMDIFlags,
375 ) -> LLVMMetadataRef;
376
377 pub fn LLVMDIBuilderCreateMacro(
378 Builder: LLVMDIBuilderRef,
379 ParentMacroFile: LLVMMetadataRef,
380 Line: ::libc::c_uint,
381 RecordType: LLVMDWARFMacinfoRecordType,
382 Name: *const ::libc::c_char,
383 NameLen: usize,
384 Value: *const ::libc::c_char,
385 ValueLen: usize,
386 ) -> LLVMMetadataRef;
387
388 pub fn LLVMDIBuilderCreateTempMacroFile(
389 Builder: LLVMDIBuilderRef,
390 ParentMacroFile: LLVMMetadataRef,
391 Line: ::libc::c_uint,
392 File: LLVMMetadataRef,
393 ) -> LLVMMetadataRef;
394
395 pub fn LLVMDIBuilderCreateEnumerator(
397 Builder: LLVMDIBuilderRef,
398 Name: *const ::libc::c_char,
399 NameLen: ::libc::size_t,
400 Value: i64,
401 IsUnsigned: LLVMBool,
402 ) -> LLVMMetadataRef;
403
404 pub fn LLVMDIBuilderCreateEnumerationType(
406 Builder: LLVMDIBuilderRef,
407 Scope: LLVMMetadataRef,
408 Name: *const ::libc::c_char,
409 NameLen: ::libc::size_t,
410 File: LLVMMetadataRef,
411 LineNumber: ::libc::c_uint,
412 SizeInBits: u64,
413 AlignInBits: u32,
414 Elements: *mut LLVMMetadataRef,
415 NumElements: ::libc::c_uint,
416 ClassTy: LLVMMetadataRef,
417 ) -> LLVMMetadataRef;
418
419 pub fn LLVMDIBuilderCreateUnionType(
421 Builder: LLVMDIBuilderRef,
422 Scope: LLVMMetadataRef,
423 Name: *const ::libc::c_char,
424 NameLen: ::libc::size_t,
425 File: LLVMMetadataRef,
426 LineNumber: ::libc::c_uint,
427 SizeInBits: u64,
428 AlignInBits: u32,
429 Flags: LLVMDIFlags,
430 Elements: *mut LLVMMetadataRef,
431 NumElements: ::libc::c_uint,
432 RunTimeLang: ::libc::c_uint,
433 UniqueId: *const ::libc::c_char,
434 UniqueIdLen: ::libc::size_t,
435 ) -> LLVMMetadataRef;
436
437 pub fn LLVMDIBuilderCreateArrayType(
439 Builder: LLVMDIBuilderRef,
440 Size: u64,
441 AlignInBits: u32,
442 Ty: LLVMMetadataRef,
443 Subscripts: *mut LLVMMetadataRef,
444 NumSubscripts: ::libc::c_uint,
445 ) -> LLVMMetadataRef;
446
447 pub fn LLVMDIBuilderCreateVectorType(
449 Builder: LLVMDIBuilderRef,
450 Size: u64,
451 AlignInBits: u32,
452 Ty: LLVMMetadataRef,
453 Subscripts: *mut LLVMMetadataRef,
454 NumSubscripts: ::libc::c_uint,
455 ) -> LLVMMetadataRef;
456
457 pub fn LLVMDIBuilderCreateUnspecifiedType(
459 Builder: LLVMDIBuilderRef,
460 Name: *const ::libc::c_char,
461 NameLen: ::libc::size_t,
462 ) -> LLVMMetadataRef;
463
464 pub fn LLVMDIBuilderCreateBasicType(
466 Builder: LLVMDIBuilderRef,
467 Name: *const ::libc::c_char,
468 NameLen: ::libc::size_t,
469 SizeInBits: u64,
470 Encoding: LLVMDWARFTypeEncoding,
471 Flags: LLVMDIFlags,
472 ) -> LLVMMetadataRef;
473
474 pub fn LLVMDIBuilderCreatePointerType(
476 Builder: LLVMDIBuilderRef,
477 PointeeTy: LLVMMetadataRef,
478 SizeInBits: u64,
479 AlignInBits: u32,
480 AddressSpace: ::libc::c_uint,
481 Name: *const ::libc::c_char,
482 NameLen: ::libc::size_t,
483 ) -> LLVMMetadataRef;
484
485 pub fn LLVMDIBuilderCreateStructType(
487 Builder: LLVMDIBuilderRef,
488 Scope: LLVMMetadataRef,
489 Name: *const ::libc::c_char,
490 NameLen: ::libc::size_t,
491 File: LLVMMetadataRef,
492 LineNumber: ::libc::c_uint,
493 SizeInBits: u64,
494 AlignInBits: u32,
495 Flags: LLVMDIFlags,
496 DerivedFrom: LLVMMetadataRef,
497 Elements: *mut LLVMMetadataRef,
498 NumElements: ::libc::c_uint,
499 RunTimeLang: ::libc::c_uint,
500 VTableHolder: LLVMMetadataRef,
501 UniqueId: *const ::libc::c_char,
502 UniqueIdLen: ::libc::size_t,
503 ) -> LLVMMetadataRef;
504
505 pub fn LLVMDIBuilderCreateMemberType(
507 Builder: LLVMDIBuilderRef,
508 Scope: LLVMMetadataRef,
509 Name: *const ::libc::c_char,
510 NameLen: ::libc::size_t,
511 File: LLVMMetadataRef,
512 LineNo: ::libc::c_uint,
513 SizeInBits: u64,
514 AlignInBits: u32,
515 OffsetInBits: u64,
516 Flags: LLVMDIFlags,
517 Ty: LLVMMetadataRef,
518 ) -> LLVMMetadataRef;
519
520 pub fn LLVMDIBuilderCreateStaticMemberType(
522 Builder: LLVMDIBuilderRef,
523 Scope: LLVMMetadataRef,
524 Name: *const ::libc::c_char,
525 NameLen: ::libc::size_t,
526 File: LLVMMetadataRef,
527 LineNumber: ::libc::c_uint,
528 Type: LLVMMetadataRef,
529 Flags: LLVMDIFlags,
530 ConstantVal: LLVMValueRef,
531 AlignInBits: u32,
532 ) -> LLVMMetadataRef;
533
534 pub fn LLVMDIBuilderCreateMemberPointerType(
536 Builder: LLVMDIBuilderRef,
537 PointeeType: LLVMMetadataRef,
538 ClassType: LLVMMetadataRef,
539 SizeInBits: u64,
540 AlignInBits: u32,
541 Flags: LLVMDIFlags,
542 ) -> LLVMMetadataRef;
543
544 pub fn LLVMDIBuilderCreateObjCIVar(
546 Builder: LLVMDIBuilderRef,
547 Name: *const ::libc::c_char,
548 NameLen: ::libc::size_t,
549 File: LLVMMetadataRef,
550 LineNo: ::libc::c_uint,
551 SizeInBits: u64,
552 AlignInBits: u32,
553 OffsetInBits: u64,
554 Flags: LLVMDIFlags,
555 Ty: LLVMMetadataRef,
556 PropertyNode: LLVMMetadataRef,
557 ) -> LLVMMetadataRef;
558
559 pub fn LLVMDIBuilderCreateObjCProperty(
561 Builder: LLVMDIBuilderRef,
562 Name: *const ::libc::c_char,
563 NameLen: ::libc::size_t,
564 File: LLVMMetadataRef,
565 LineNo: ::libc::c_uint,
566 GetterName: *const ::libc::c_char,
567 GetterNameLen: ::libc::size_t,
568 SetterName: *const ::libc::c_char,
569 SetterNameLen: ::libc::size_t,
570 PropertyAttributes: ::libc::c_uint,
571 Ty: LLVMMetadataRef,
572 ) -> LLVMMetadataRef;
573
574 pub fn LLVMDIBuilderCreateObjectPointerType(
576 Builder: LLVMDIBuilderRef,
577 Type: LLVMMetadataRef,
578 ) -> LLVMMetadataRef;
579
580 pub fn LLVMDIBuilderCreateQualifiedType(
582 Builder: LLVMDIBuilderRef,
583 Tag: ::libc::c_uint,
584 Type: LLVMMetadataRef,
585 ) -> LLVMMetadataRef;
586
587 pub fn LLVMDIBuilderCreateReferenceType(
589 Builder: LLVMDIBuilderRef,
590 Tag: ::libc::c_uint,
591 Type: LLVMMetadataRef,
592 ) -> LLVMMetadataRef;
593
594 pub fn LLVMDIBuilderCreateNullPtrType(Builder: LLVMDIBuilderRef) -> LLVMMetadataRef;
596
597 pub fn LLVMDIBuilderCreateTypedef(
599 Builder: LLVMDIBuilderRef,
600 Type: LLVMMetadataRef,
601 Name: *const ::libc::c_char,
602 NameLen: ::libc::size_t,
603 File: LLVMMetadataRef,
604 LineNo: ::libc::c_uint,
605 Scope: LLVMMetadataRef,
606 AlignInBits: u32,
607 ) -> LLVMMetadataRef;
608
609 pub fn LLVMDIBuilderCreateInheritance(
611 Builder: LLVMDIBuilderRef,
612 Ty: LLVMMetadataRef,
613 BaseTy: LLVMMetadataRef,
614 BaseOffset: u64,
615 VBPtrOffset: u32,
616 Flags: LLVMDIFlags,
617 ) -> LLVMMetadataRef;
618
619 pub fn LLVMDIBuilderCreateForwardDecl(
621 Builder: LLVMDIBuilderRef,
622 Tag: ::libc::c_uint,
623 Name: *const ::libc::c_char,
624 NameLen: ::libc::size_t,
625 Scope: LLVMMetadataRef,
626 File: LLVMMetadataRef,
627 Line: ::libc::c_uint,
628 RuntimeLang: ::libc::c_uint,
629 SizeInBits: u64,
630 AlignInBits: u32,
631 UniqueIdentifier: *const ::libc::c_char,
632 UniqueIdentifierLen: ::libc::size_t,
633 ) -> LLVMMetadataRef;
634
635 pub fn LLVMDIBuilderCreateReplaceableCompositeType(
637 Builder: LLVMDIBuilderRef,
638 Tag: ::libc::c_uint,
639 Name: *const ::libc::c_char,
640 NameLen: ::libc::size_t,
641 Scope: LLVMMetadataRef,
642 File: LLVMMetadataRef,
643 Line: ::libc::c_uint,
644 RuntimeLang: ::libc::c_uint,
645 SizeInBits: u64,
646 AlignInBits: u32,
647 Flags: LLVMDIFlags,
648 UniqueIdentifier: *const ::libc::c_char,
649 UniqueIdentifierLen: ::libc::size_t,
650 ) -> LLVMMetadataRef;
651
652 pub fn LLVMDIBuilderCreateBitFieldMemberType(
654 Builder: LLVMDIBuilderRef,
655 Scope: LLVMMetadataRef,
656 Name: *const ::libc::c_char,
657 NameLen: ::libc::size_t,
658 File: LLVMMetadataRef,
659 LineNumber: ::libc::c_uint,
660 SizeInBits: u64,
661 OffsetInBits: u64,
662 StorageOffsetInBits: u64,
663 Flags: LLVMDIFlags,
664 Type: LLVMMetadataRef,
665 ) -> LLVMMetadataRef;
666
667 pub fn LLVMDIBuilderCreateClassType(
669 Builder: LLVMDIBuilderRef,
670 Scope: LLVMMetadataRef,
671 Name: *const ::libc::c_char,
672 NameLen: ::libc::size_t,
673 File: LLVMMetadataRef,
674 LineNumber: ::libc::c_uint,
675 SizeInBits: u64,
676 AlignInBits: u32,
677 OffsetInBits: u64,
678 Flags: LLVMDIFlags,
679 DerivedFrom: LLVMMetadataRef,
680 Elements: *mut LLVMMetadataRef,
681 NumElements: ::libc::c_uint,
682 VTableHolder: LLVMMetadataRef,
683 TemplateParamsNode: LLVMMetadataRef,
684 UniqueIdentifier: *const ::libc::c_char,
685 UniqueIdentifierLen: ::libc::size_t,
686 ) -> LLVMMetadataRef;
687
688 pub fn LLVMDIBuilderCreateArtificialType(
690 Builder: LLVMDIBuilderRef,
691 Type: LLVMMetadataRef,
692 ) -> LLVMMetadataRef;
693
694 pub fn LLVMDITypeGetName(
696 DType: LLVMMetadataRef,
697 Length: *mut ::libc::size_t,
698 ) -> *const ::libc::c_char;
699
700 pub fn LLVMDITypeGetSizeInBits(DType: LLVMMetadataRef) -> u64;
702
703 pub fn LLVMDITypeGetOffsetInBits(DType: LLVMMetadataRef) -> u64;
705
706 pub fn LLVMDITypeGetAlignInBits(DType: LLVMMetadataRef) -> u32;
708
709 pub fn LLVMDITypeGetLine(DType: LLVMMetadataRef) -> ::libc::c_uint;
711
712 pub fn LLVMDITypeGetFlags(DType: LLVMMetadataRef) -> LLVMDIFlags;
714
715 pub fn LLVMDIBuilderGetOrCreateSubrange(
717 Builder: LLVMDIBuilderRef,
718 LowerBound: i64,
719 Count: i64,
720 ) -> LLVMMetadataRef;
721
722 pub fn LLVMDIBuilderGetOrCreateArray(
724 Builder: LLVMDIBuilderRef,
725 Data: *mut LLVMMetadataRef,
726 NumElements: ::libc::size_t,
727 ) -> LLVMMetadataRef;
728
729 pub fn LLVMDIBuilderCreateExpression(
731 Builder: LLVMDIBuilderRef,
732 Addr: *mut u64,
733 Length: ::libc::size_t,
734 ) -> LLVMMetadataRef;
735
736 pub fn LLVMDIBuilderCreateConstantValueExpression(
738 Builder: LLVMDIBuilderRef,
739 Value: u64,
740 ) -> LLVMMetadataRef;
741
742 pub fn LLVMDIBuilderCreateGlobalVariableExpression(
744 Builder: LLVMDIBuilderRef,
745 Scope: LLVMMetadataRef,
746 Name: *const ::libc::c_char,
747 NameLen: ::libc::size_t,
748 Linkage: *const ::libc::c_char,
749 LinkLen: ::libc::size_t,
750 File: LLVMMetadataRef,
751 LineNo: ::libc::c_uint,
752 Ty: LLVMMetadataRef,
753 LocalToUnit: LLVMBool,
754 Expr: LLVMMetadataRef,
755 Decl: LLVMMetadataRef,
756 AlignInBits: u32,
757 ) -> LLVMMetadataRef;
758
759 pub fn LLVMGetDINodeTag(MD: LLVMMetadataRef) -> u16;
761
762 pub fn LLVMDIGlobalVariableExpressionGetVariable(GVE: LLVMMetadataRef) -> LLVMMetadataRef;
764
765 pub fn LLVMDIGlobalVariableExpressionGetExpression(GVE: LLVMMetadataRef) -> LLVMMetadataRef;
767
768 pub fn LLVMDIVariableGetFile(Var: LLVMMetadataRef) -> LLVMMetadataRef;
770
771 pub fn LLVMDIVariableGetScope(Var: LLVMMetadataRef) -> LLVMMetadataRef;
773
774 pub fn LLVMDIVariableGetLine(Var: LLVMMetadataRef) -> ::libc::c_uint;
776
777 pub fn LLVMTemporaryMDNode(
779 Ctx: LLVMContextRef,
780 Data: *mut LLVMMetadataRef,
781 NumElements: ::libc::size_t,
782 ) -> LLVMMetadataRef;
783
784 pub fn LLVMDisposeTemporaryMDNode(TempNode: LLVMMetadataRef);
786
787 pub fn LLVMMetadataReplaceAllUsesWith(
789 TempTargetMetadata: LLVMMetadataRef,
790 Replacement: LLVMMetadataRef,
791 );
792
793 pub fn LLVMDIBuilderCreateTempGlobalVariableFwdDecl(
795 Builder: LLVMDIBuilderRef,
796 Scope: LLVMMetadataRef,
797 Name: *const ::libc::c_char,
798 NameLen: ::libc::size_t,
799 Linkage: *const ::libc::c_char,
800 LnkLen: ::libc::size_t,
801 File: LLVMMetadataRef,
802 LineNo: ::libc::c_uint,
803 Ty: LLVMMetadataRef,
804 LocalToUnit: LLVMBool,
805 Decl: LLVMMetadataRef,
806 AlignInBits: u32,
807 ) -> LLVMMetadataRef;
808
809 pub fn LLVMDIBuilderInsertDeclareBefore(
811 Builder: LLVMDIBuilderRef,
812 Storage: LLVMValueRef,
813 VarInfo: LLVMMetadataRef,
814 Expr: LLVMMetadataRef,
815 DebugLoc: LLVMMetadataRef,
816 Instr: LLVMValueRef,
817 ) -> LLVMValueRef;
818
819 pub fn LLVMDIBuilderInsertDeclareAtEnd(
821 Builder: LLVMDIBuilderRef,
822 Storage: LLVMValueRef,
823 VarInfo: LLVMMetadataRef,
824 Expr: LLVMMetadataRef,
825 DebugLoc: LLVMMetadataRef,
826 Block: LLVMBasicBlockRef,
827 ) -> LLVMValueRef;
828
829 pub fn LLVMDIBuilderInsertDbgValueBefore(
831 Builder: LLVMDIBuilderRef,
832 Val: LLVMValueRef,
833 VarInfo: LLVMMetadataRef,
834 Expr: LLVMMetadataRef,
835 DebugLoc: LLVMMetadataRef,
836 Instr: LLVMValueRef,
837 ) -> LLVMValueRef;
838
839 pub fn LLVMDIBuilderInsertDbgValueAtEnd(
841 Builder: LLVMDIBuilderRef,
842 Val: LLVMValueRef,
843 VarInfo: LLVMMetadataRef,
844 Expr: LLVMMetadataRef,
845 DebugLoc: LLVMMetadataRef,
846 Block: LLVMBasicBlockRef,
847 ) -> LLVMValueRef;
848
849 pub fn LLVMDIBuilderCreateAutoVariable(
851 Builder: LLVMDIBuilderRef,
852 Scope: LLVMMetadataRef,
853 Name: *const ::libc::c_char,
854 NameLen: ::libc::size_t,
855 File: LLVMMetadataRef,
856 LineNo: ::libc::c_uint,
857 Ty: LLVMMetadataRef,
858 AlwaysPreserve: LLVMBool,
859 Flags: LLVMDIFlags,
860 AlignInBits: u32,
861 ) -> LLVMMetadataRef;
862
863 pub fn LLVMDIBuilderCreateParameterVariable(
865 Builder: LLVMDIBuilderRef,
866 Scope: LLVMMetadataRef,
867 Name: *const ::libc::c_char,
868 NameLen: ::libc::size_t,
869 ArgNo: ::libc::c_uint,
870 File: LLVMMetadataRef,
871 LineNo: ::libc::c_uint,
872 Ty: LLVMMetadataRef,
873 AlwaysPreserve: LLVMBool,
874 Flags: LLVMDIFlags,
875 ) -> LLVMMetadataRef;
876
877 pub fn LLVMGetSubprogram(Func: LLVMValueRef) -> LLVMMetadataRef;
879
880 pub fn LLVMSetSubprogram(Func: LLVMValueRef, SP: LLVMMetadataRef);
882
883 pub fn LLVMDISubprogramGetLine(Subprogram: LLVMMetadataRef) -> ::libc::c_uint;
885
886 pub fn LLVMInstructionGetDebugLoc(Inst: LLVMValueRef) -> LLVMMetadataRef;
888
889 pub fn LLVMInstructionSetDebugLoc(Inst: LLVMValueRef, Loc: LLVMMetadataRef);
891
892 pub fn LLVMGetMetadataKind(Metadata: LLVMMetadataRef) -> LLVMMetadataKind;
894}