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