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 LLVMDWARFSourceLanguageMetal,
110 LLVMDWARFSourceLanguageMips_Assembler,
112 LLVMDWARFSourceLanguageGOOGLE_RenderScript,
113 LLVMDWARFSourceLanguageBORLAND_Delphi,
114}
115
116#[repr(C)]
118#[derive(Debug)]
119pub enum LLVMDWARFEmissionKind {
120 LLVMDWARFEmissionKindNone = 0,
121 LLVMDWARFEmissionKindFull,
122 LLVMDWARFEmissionKindLineTablesOnly,
123}
124
125#[repr(C)]
126#[derive(Debug)]
127pub enum LLVMMetadataKind {
128 LLVMMDStringMetadataKind,
129 LLVMConstantAsMetadataMetadataKind,
130 LLVMLocalAsMetadataMetadataKind,
131 LLVMDistinctMDOperandPlaceholderMetadataKind,
132 LLVMMDTupleMetadataKind,
133 LLVMDILocationMetadataKind,
134 LLVMDIExpressionMetadataKind,
135 LLVMDIGlobalVariableExpressionMetadataKind,
136 LLVMGenericDINodeMetadataKind,
137 LLVMDISubrangeMetadataKind,
138 LLVMDIEnumeratorMetadataKind,
139 LLVMDIBasicTypeMetadataKind,
140 LLVMDIDerivedTypeMetadataKind,
141 LLVMDICompositeTypeMetadataKind,
142 LLVMDISubroutineTypeMetadataKind,
143 LLVMDIFileMetadataKind,
144 LLVMDICompileUnitMetadataKind,
145 LLVMDISubprogramMetadataKind,
146 LLVMDILexicalBlockMetadataKind,
147 LLVMDILexicalBlockFileMetadataKind,
148 LLVMDINamespaceMetadataKind,
149 LLVMDIModuleMetadataKind,
150 LLVMDITemplateTypeParameterMetadataKind,
151 LLVMDITemplateValueParameterMetadataKind,
152 LLVMDIGlobalVariableMetadataKind,
153 LLVMDILocalVariableMetadataKind,
154 LLVMDILabelMetadataKind,
155 LLVMDIObjCPropertyMetadataKind,
156 LLVMDIImportedEntityMetadataKind,
157 LLVMDIMacroMetadataKind,
158 LLVMDIMacroFileMetadataKind,
159 LLVMDICommonBlockMetadataKind,
160 LLVMDIStringTypeMetadataKind,
161 LLVMDIGenericSubrangeMetadataKind,
162 LLVMDIArgListMetadataKind,
163 LLVMDIAssignIDMetadataKind,
164 LLVMDISubrangeTypeMetadataKind,
165 LLVMDIFixedPointTypeMetadataKind,
166}
167
168pub type LLVMDWARFTypeEncoding = ::libc::c_uint;
169
170#[repr(C)]
171#[derive(Debug)]
172pub enum LLVMDWARFMacinfoRecordType {
173 LLVMDWARFMacinfoRecordTypeDefine = 0x01,
174 LLVMDWARFMacinfoRecordTypeMacro = 0x02,
175 LLVMDWARFMacinfoRecordTypeStartFile = 0x03,
176 LLVMDWARFMacinfoRecordTypeEndFile = 0x04,
177 LLVMDWARFMacinfoRecordTypeVendorExt = 0xff,
178}
179
180extern "C" {
181 pub fn LLVMDebugMetadataVersion() -> ::libc::c_uint;
183 pub fn LLVMGetModuleDebugMetadataVersion(Module: LLVMModuleRef) -> ::libc::c_uint;
185 pub fn LLVMStripModuleDebugInfo(Module: LLVMModuleRef) -> LLVMBool;
187 pub fn LLVMCreateDIBuilderDisallowUnresolved(M: LLVMModuleRef) -> LLVMDIBuilderRef;
189 pub fn LLVMCreateDIBuilder(M: LLVMModuleRef) -> LLVMDIBuilderRef;
191 pub fn LLVMDisposeDIBuilder(Builder: LLVMDIBuilderRef);
195 pub fn LLVMDIBuilderFinalize(Builder: LLVMDIBuilderRef);
197 pub fn LLVMDIBuilderFinalizeSubprogram(Builder: LLVMDIBuilderRef, Subprogram: LLVMMetadataRef);
200 pub fn LLVMDIBuilderCreateCompileUnit(
201 Builder: LLVMDIBuilderRef,
202 Lang: LLVMDWARFSourceLanguage,
203 FileRef: LLVMMetadataRef,
204 Producer: *const ::libc::c_char,
205 ProducerLen: ::libc::size_t,
206 isOptimized: LLVMBool,
207 Flags: *const ::libc::c_char,
208 FlagsLen: ::libc::size_t,
209 RuntimeVer: ::libc::c_uint,
210 SplitName: *const ::libc::c_char,
211 SplitNameLen: ::libc::size_t,
212 Kind: LLVMDWARFEmissionKind,
213 DWOId: ::libc::c_uint,
214 SplitDebugInlining: LLVMBool,
215 DebugInfoForProfiling: LLVMBool,
216 SysRoot: *const ::libc::c_char,
217 SysRootLen: ::libc::size_t,
218 SDK: *const ::libc::c_char,
219 SDKLen: ::libc::size_t,
220 ) -> LLVMMetadataRef;
221 pub fn LLVMDIBuilderCreateFile(
223 Builder: LLVMDIBuilderRef,
224 Filename: *const ::libc::c_char,
225 FilenameLen: ::libc::size_t,
226 Directory: *const ::libc::c_char,
227 DirectoryLen: ::libc::size_t,
228 ) -> LLVMMetadataRef;
229
230 pub fn LLVMDIBuilderCreateModule(
232 Builder: LLVMDIBuilderRef,
233 ParentScope: LLVMMetadataRef,
234 Name: *const ::libc::c_char,
235 NameLen: ::libc::size_t,
236 ConfigMacros: *const ::libc::c_char,
237 ConfigMacrosLen: ::libc::size_t,
238 IncludePath: *const ::libc::c_char,
239 IncludePathLen: ::libc::size_t,
240 APINotesFile: *const ::libc::c_char,
241 APINotesFileLen: ::libc::size_t,
242 ) -> LLVMMetadataRef;
243
244 pub fn LLVMDIBuilderCreateNameSpace(
246 Builder: LLVMDIBuilderRef,
247 ParentScope: LLVMMetadataRef,
248 Name: *const ::libc::c_char,
249 NameLen: ::libc::size_t,
250 ExportSymbols: LLVMBool,
251 ) -> LLVMMetadataRef;
252
253 pub fn LLVMDIBuilderCreateFunction(
255 Builder: LLVMDIBuilderRef,
256 Scope: LLVMMetadataRef,
257 Name: *const ::libc::c_char,
258 NameLen: ::libc::size_t,
259 LinkageName: *const ::libc::c_char,
260 LinkageNameLen: ::libc::size_t,
261 File: LLVMMetadataRef,
262 LineNo: ::libc::c_uint,
263 Ty: LLVMMetadataRef,
264 IsLocalToUnit: LLVMBool,
265 IsDefinition: LLVMBool,
266 ScopeLine: ::libc::c_uint,
267 Flags: LLVMDIFlags,
268 IsOptimized: LLVMBool,
269 ) -> LLVMMetadataRef;
270
271 pub fn LLVMDIBuilderCreateLexicalBlock(
273 Builder: LLVMDIBuilderRef,
274 Scope: LLVMMetadataRef,
275 File: LLVMMetadataRef,
276 Line: ::libc::c_uint,
277 Column: ::libc::c_uint,
278 ) -> LLVMMetadataRef;
279
280 pub fn LLVMDIBuilderCreateLexicalBlockFile(
282 Builder: LLVMDIBuilderRef,
283 Scope: LLVMMetadataRef,
284 File: LLVMMetadataRef,
285 Discriminator: ::libc::c_uint,
286 ) -> LLVMMetadataRef;
287
288 pub fn LLVMDIBuilderCreateImportedModuleFromNamespace(
290 Builder: LLVMDIBuilderRef,
291 Scope: LLVMMetadataRef,
292 NS: LLVMMetadataRef,
293 File: LLVMMetadataRef,
294 Line: ::libc::c_uint,
295 ) -> LLVMMetadataRef;
296
297 pub fn LLVMDIBuilderCreateImportedModuleFromAlias(
299 Builder: LLVMDIBuilderRef,
300 Scope: LLVMMetadataRef,
301 ImportedEntity: LLVMMetadataRef,
302 File: LLVMMetadataRef,
303 Line: ::libc::c_uint,
304 Elements: *mut LLVMMetadataRef,
305 NumElements: ::libc::c_uint,
306 ) -> LLVMMetadataRef;
307
308 pub fn LLVMDIBuilderCreateImportedModuleFromModule(
310 Builder: LLVMDIBuilderRef,
311 Scope: LLVMMetadataRef,
312 M: LLVMMetadataRef,
313 File: LLVMMetadataRef,
314 Line: ::libc::c_uint,
315 Elements: *mut LLVMMetadataRef,
316 NumElements: ::libc::c_uint,
317 ) -> LLVMMetadataRef;
318
319 pub fn LLVMDIBuilderCreateImportedDeclaration(
323 Builder: LLVMDIBuilderRef,
324 Scope: LLVMMetadataRef,
325 Decl: LLVMMetadataRef,
326 File: LLVMMetadataRef,
327 Line: ::libc::c_uint,
328 Name: *const ::libc::c_char,
329 NameLen: ::libc::size_t,
330 Elements: *mut LLVMMetadataRef,
331 NumElements: ::libc::c_uint,
332 ) -> LLVMMetadataRef;
333
334 pub fn LLVMDIBuilderCreateDebugLocation(
336 Ctx: LLVMContextRef,
337 Line: ::libc::c_uint,
338 Column: ::libc::c_uint,
339 Scope: LLVMMetadataRef,
340 InlinedAt: LLVMMetadataRef,
341 ) -> LLVMMetadataRef;
342
343 pub fn LLVMDILocationGetLine(Location: LLVMMetadataRef) -> ::libc::c_uint;
345
346 pub fn LLVMDILocationGetColumn(Location: LLVMMetadataRef) -> ::libc::c_uint;
348
349 pub fn LLVMDILocationGetScope(Location: LLVMMetadataRef) -> LLVMMetadataRef;
351
352 pub fn LLVMDILocationGetInlinedAt(Location: LLVMMetadataRef) -> LLVMMetadataRef;
354
355 pub fn LLVMDIScopeGetFile(Scope: LLVMMetadataRef) -> LLVMMetadataRef;
357
358 pub fn LLVMDIFileGetDirectory(
360 File: LLVMMetadataRef,
361 Len: *mut ::libc::c_uint,
362 ) -> *const ::libc::c_char;
363
364 pub fn LLVMDIFileGetFilename(
366 File: LLVMMetadataRef,
367 Len: *mut ::libc::c_uint,
368 ) -> *const ::libc::c_char;
369
370 pub fn LLVMDIFileGetSource(
372 File: LLVMMetadataRef,
373 Len: *mut ::libc::c_uint,
374 ) -> *const ::libc::c_char;
375
376 pub fn LLVMDIBuilderGetOrCreateTypeArray(
378 Builder: LLVMDIBuilderRef,
379 Data: *mut LLVMMetadataRef,
380 NumElements: ::libc::size_t,
381 ) -> LLVMMetadataRef;
382
383 pub fn LLVMDIBuilderCreateSubroutineType(
385 Builder: LLVMDIBuilderRef,
386 File: LLVMMetadataRef,
387 ParameterTypes: *mut LLVMMetadataRef,
388 NumParameterTypes: ::libc::c_uint,
389 Flags: LLVMDIFlags,
390 ) -> LLVMMetadataRef;
391
392 pub fn LLVMDIBuilderCreateMacro(
393 Builder: LLVMDIBuilderRef,
394 ParentMacroFile: LLVMMetadataRef,
395 Line: ::libc::c_uint,
396 RecordType: LLVMDWARFMacinfoRecordType,
397 Name: *const ::libc::c_char,
398 NameLen: usize,
399 Value: *const ::libc::c_char,
400 ValueLen: usize,
401 ) -> LLVMMetadataRef;
402
403 pub fn LLVMDIBuilderCreateTempMacroFile(
404 Builder: LLVMDIBuilderRef,
405 ParentMacroFile: LLVMMetadataRef,
406 Line: ::libc::c_uint,
407 File: LLVMMetadataRef,
408 ) -> LLVMMetadataRef;
409
410 pub fn LLVMDIBuilderCreateEnumerator(
412 Builder: LLVMDIBuilderRef,
413 Name: *const ::libc::c_char,
414 NameLen: ::libc::size_t,
415 Value: i64,
416 IsUnsigned: LLVMBool,
417 ) -> LLVMMetadataRef;
418
419 pub fn LLVMDIBuilderCreateEnumeratorOfArbitraryPrecision(
421 Builder: LLVMDIBuilderRef,
422 Name: *const ::libc::c_char,
423 NameLen: ::libc::size_t,
424 SizeInBits: u64,
425 Words: *const u64,
426 IsUnsigned: LLVMBool,
427 ) -> LLVMMetadataRef;
428
429 pub fn LLVMDIBuilderCreateEnumerationType(
431 Builder: LLVMDIBuilderRef,
432 Scope: LLVMMetadataRef,
433 Name: *const ::libc::c_char,
434 NameLen: ::libc::size_t,
435 File: LLVMMetadataRef,
436 LineNumber: ::libc::c_uint,
437 SizeInBits: u64,
438 AlignInBits: u32,
439 Elements: *mut LLVMMetadataRef,
440 NumElements: ::libc::c_uint,
441 ClassTy: LLVMMetadataRef,
442 ) -> LLVMMetadataRef;
443
444 pub fn LLVMDIBuilderCreateUnionType(
446 Builder: LLVMDIBuilderRef,
447 Scope: LLVMMetadataRef,
448 Name: *const ::libc::c_char,
449 NameLen: ::libc::size_t,
450 File: LLVMMetadataRef,
451 LineNumber: ::libc::c_uint,
452 SizeInBits: u64,
453 AlignInBits: u32,
454 Flags: LLVMDIFlags,
455 Elements: *mut LLVMMetadataRef,
456 NumElements: ::libc::c_uint,
457 RunTimeLang: ::libc::c_uint,
458 UniqueId: *const ::libc::c_char,
459 UniqueIdLen: ::libc::size_t,
460 ) -> LLVMMetadataRef;
461
462 pub fn LLVMDIBuilderCreateArrayType(
464 Builder: LLVMDIBuilderRef,
465 Size: u64,
466 AlignInBits: u32,
467 Ty: LLVMMetadataRef,
468 Subscripts: *mut LLVMMetadataRef,
469 NumSubscripts: ::libc::c_uint,
470 ) -> LLVMMetadataRef;
471
472 pub fn LLVMDIBuilderCreateSetType(
474 Builder: LLVMDIBuilderRef,
475 Scope: LLVMMetadataRef,
476 Name: *const ::libc::c_char,
477 NameLen: ::libc::size_t,
478 File: LLVMMetadataRef,
479 LineNumber: ::libc::c_uint,
480 SizeInBits: u64,
481 AlignInBits: u32,
482 BaseTy: LLVMMetadataRef,
483 ) -> LLVMMetadataRef;
484
485 pub fn LLVMDIBuilderCreateSubrangeType(
487 Builder: LLVMDIBuilderRef,
488 Scope: LLVMMetadataRef,
489 Name: *const ::libc::c_char,
490 NameLen: ::libc::size_t,
491 LineNo: ::libc::c_uint,
492 File: LLVMMetadataRef,
493 SizeInBits: u64,
494 AlignInBits: u32,
495 Flags: LLVMDIFlags,
496 BaseTy: LLVMMetadataRef,
497 LowerBound: LLVMMetadataRef,
498 UpperBound: LLVMMetadataRef,
499 Stride: LLVMMetadataRef,
500 Bias: LLVMMetadataRef,
501 ) -> LLVMMetadataRef;
502
503 pub fn LLVMDIBuilderCreateDynamicArrayType(
505 Builder: LLVMDIBuilderRef,
506 Scope: LLVMMetadataRef,
507 Name: *const ::libc::c_char,
508 NameLen: ::libc::size_t,
509 LineNo: ::libc::c_uint,
510 File: LLVMMetadataRef,
511 Size: u64,
512 AlignInBits: u32,
513 Ty: LLVMMetadataRef,
514 Subscripts: LLVMMetadataRef,
515 NumSubscripts: ::libc::c_uint,
516 DataLocation: LLVMMetadataRef,
517 Associated: LLVMMetadataRef,
518 Allocated: LLVMMetadataRef,
519 Rank: LLVMMetadataRef,
520 BitStride: LLVMMetadataRef,
521 ) -> LLVMMetadataRef;
522
523 pub fn LLVMReplaceArrays(
525 Builder: LLVMDIBuilderRef,
526 T: *mut LLVMMetadataRef,
527 Elements: *mut LLVMMetadataRef,
528 NumElements: ::libc::c_uint,
529 );
530
531 pub fn LLVMDIBuilderCreateVectorType(
533 Builder: LLVMDIBuilderRef,
534 Size: u64,
535 AlignInBits: u32,
536 Ty: LLVMMetadataRef,
537 Subscripts: *mut LLVMMetadataRef,
538 NumSubscripts: ::libc::c_uint,
539 ) -> LLVMMetadataRef;
540
541 pub fn LLVMDIBuilderCreateUnspecifiedType(
543 Builder: LLVMDIBuilderRef,
544 Name: *const ::libc::c_char,
545 NameLen: ::libc::size_t,
546 ) -> LLVMMetadataRef;
547
548 pub fn LLVMDIBuilderCreateBasicType(
550 Builder: LLVMDIBuilderRef,
551 Name: *const ::libc::c_char,
552 NameLen: ::libc::size_t,
553 SizeInBits: u64,
554 Encoding: LLVMDWARFTypeEncoding,
555 Flags: LLVMDIFlags,
556 ) -> LLVMMetadataRef;
557
558 pub fn LLVMDIBuilderCreatePointerType(
560 Builder: LLVMDIBuilderRef,
561 PointeeTy: LLVMMetadataRef,
562 SizeInBits: u64,
563 AlignInBits: u32,
564 AddressSpace: ::libc::c_uint,
565 Name: *const ::libc::c_char,
566 NameLen: ::libc::size_t,
567 ) -> LLVMMetadataRef;
568
569 pub fn LLVMDIBuilderCreateStructType(
571 Builder: LLVMDIBuilderRef,
572 Scope: LLVMMetadataRef,
573 Name: *const ::libc::c_char,
574 NameLen: ::libc::size_t,
575 File: LLVMMetadataRef,
576 LineNumber: ::libc::c_uint,
577 SizeInBits: u64,
578 AlignInBits: u32,
579 Flags: LLVMDIFlags,
580 DerivedFrom: LLVMMetadataRef,
581 Elements: *mut LLVMMetadataRef,
582 NumElements: ::libc::c_uint,
583 RunTimeLang: ::libc::c_uint,
584 VTableHolder: LLVMMetadataRef,
585 UniqueId: *const ::libc::c_char,
586 UniqueIdLen: ::libc::size_t,
587 ) -> LLVMMetadataRef;
588
589 pub fn LLVMDIBuilderCreateMemberType(
591 Builder: LLVMDIBuilderRef,
592 Scope: LLVMMetadataRef,
593 Name: *const ::libc::c_char,
594 NameLen: ::libc::size_t,
595 File: LLVMMetadataRef,
596 LineNo: ::libc::c_uint,
597 SizeInBits: u64,
598 AlignInBits: u32,
599 OffsetInBits: u64,
600 Flags: LLVMDIFlags,
601 Ty: LLVMMetadataRef,
602 ) -> LLVMMetadataRef;
603
604 pub fn LLVMDIBuilderCreateStaticMemberType(
606 Builder: LLVMDIBuilderRef,
607 Scope: LLVMMetadataRef,
608 Name: *const ::libc::c_char,
609 NameLen: ::libc::size_t,
610 File: LLVMMetadataRef,
611 LineNumber: ::libc::c_uint,
612 Type: LLVMMetadataRef,
613 Flags: LLVMDIFlags,
614 ConstantVal: LLVMValueRef,
615 AlignInBits: u32,
616 ) -> LLVMMetadataRef;
617
618 pub fn LLVMDIBuilderCreateMemberPointerType(
620 Builder: LLVMDIBuilderRef,
621 PointeeType: LLVMMetadataRef,
622 ClassType: LLVMMetadataRef,
623 SizeInBits: u64,
624 AlignInBits: u32,
625 Flags: LLVMDIFlags,
626 ) -> LLVMMetadataRef;
627
628 pub fn LLVMDIBuilderCreateObjCIVar(
630 Builder: LLVMDIBuilderRef,
631 Name: *const ::libc::c_char,
632 NameLen: ::libc::size_t,
633 File: LLVMMetadataRef,
634 LineNo: ::libc::c_uint,
635 SizeInBits: u64,
636 AlignInBits: u32,
637 OffsetInBits: u64,
638 Flags: LLVMDIFlags,
639 Ty: LLVMMetadataRef,
640 PropertyNode: LLVMMetadataRef,
641 ) -> LLVMMetadataRef;
642
643 pub fn LLVMDIBuilderCreateObjCProperty(
645 Builder: LLVMDIBuilderRef,
646 Name: *const ::libc::c_char,
647 NameLen: ::libc::size_t,
648 File: LLVMMetadataRef,
649 LineNo: ::libc::c_uint,
650 GetterName: *const ::libc::c_char,
651 GetterNameLen: ::libc::size_t,
652 SetterName: *const ::libc::c_char,
653 SetterNameLen: ::libc::size_t,
654 PropertyAttributes: ::libc::c_uint,
655 Ty: LLVMMetadataRef,
656 ) -> LLVMMetadataRef;
657
658 pub fn LLVMDIBuilderCreateObjectPointerType(
661 Builder: LLVMDIBuilderRef,
662 Type: LLVMMetadataRef,
663 Implicit: LLVMBool,
664 ) -> LLVMMetadataRef;
665
666 pub fn LLVMDIBuilderCreateQualifiedType(
668 Builder: LLVMDIBuilderRef,
669 Tag: ::libc::c_uint,
670 Type: LLVMMetadataRef,
671 ) -> LLVMMetadataRef;
672
673 pub fn LLVMDIBuilderCreateReferenceType(
675 Builder: LLVMDIBuilderRef,
676 Tag: ::libc::c_uint,
677 Type: LLVMMetadataRef,
678 ) -> LLVMMetadataRef;
679
680 pub fn LLVMDIBuilderCreateNullPtrType(Builder: LLVMDIBuilderRef) -> LLVMMetadataRef;
682
683 pub fn LLVMDIBuilderCreateTypedef(
685 Builder: LLVMDIBuilderRef,
686 Type: LLVMMetadataRef,
687 Name: *const ::libc::c_char,
688 NameLen: ::libc::size_t,
689 File: LLVMMetadataRef,
690 LineNo: ::libc::c_uint,
691 Scope: LLVMMetadataRef,
692 AlignInBits: u32,
693 ) -> LLVMMetadataRef;
694
695 pub fn LLVMDIBuilderCreateInheritance(
697 Builder: LLVMDIBuilderRef,
698 Ty: LLVMMetadataRef,
699 BaseTy: LLVMMetadataRef,
700 BaseOffset: u64,
701 VBPtrOffset: u32,
702 Flags: LLVMDIFlags,
703 ) -> LLVMMetadataRef;
704
705 pub fn LLVMDIBuilderCreateForwardDecl(
707 Builder: LLVMDIBuilderRef,
708 Tag: ::libc::c_uint,
709 Name: *const ::libc::c_char,
710 NameLen: ::libc::size_t,
711 Scope: LLVMMetadataRef,
712 File: LLVMMetadataRef,
713 Line: ::libc::c_uint,
714 RuntimeLang: ::libc::c_uint,
715 SizeInBits: u64,
716 AlignInBits: u32,
717 UniqueIdentifier: *const ::libc::c_char,
718 UniqueIdentifierLen: ::libc::size_t,
719 ) -> LLVMMetadataRef;
720
721 pub fn LLVMDIBuilderCreateReplaceableCompositeType(
723 Builder: LLVMDIBuilderRef,
724 Tag: ::libc::c_uint,
725 Name: *const ::libc::c_char,
726 NameLen: ::libc::size_t,
727 Scope: LLVMMetadataRef,
728 File: LLVMMetadataRef,
729 Line: ::libc::c_uint,
730 RuntimeLang: ::libc::c_uint,
731 SizeInBits: u64,
732 AlignInBits: u32,
733 Flags: LLVMDIFlags,
734 UniqueIdentifier: *const ::libc::c_char,
735 UniqueIdentifierLen: ::libc::size_t,
736 ) -> LLVMMetadataRef;
737
738 pub fn LLVMDIBuilderCreateBitFieldMemberType(
740 Builder: LLVMDIBuilderRef,
741 Scope: LLVMMetadataRef,
742 Name: *const ::libc::c_char,
743 NameLen: ::libc::size_t,
744 File: LLVMMetadataRef,
745 LineNumber: ::libc::c_uint,
746 SizeInBits: u64,
747 OffsetInBits: u64,
748 StorageOffsetInBits: u64,
749 Flags: LLVMDIFlags,
750 Type: LLVMMetadataRef,
751 ) -> LLVMMetadataRef;
752
753 pub fn LLVMDIBuilderCreateClassType(
755 Builder: LLVMDIBuilderRef,
756 Scope: LLVMMetadataRef,
757 Name: *const ::libc::c_char,
758 NameLen: ::libc::size_t,
759 File: LLVMMetadataRef,
760 LineNumber: ::libc::c_uint,
761 SizeInBits: u64,
762 AlignInBits: u32,
763 OffsetInBits: u64,
764 Flags: LLVMDIFlags,
765 DerivedFrom: LLVMMetadataRef,
766 Elements: *mut LLVMMetadataRef,
767 NumElements: ::libc::c_uint,
768 VTableHolder: LLVMMetadataRef,
769 TemplateParamsNode: LLVMMetadataRef,
770 UniqueIdentifier: *const ::libc::c_char,
771 UniqueIdentifierLen: ::libc::size_t,
772 ) -> LLVMMetadataRef;
773
774 pub fn LLVMDIBuilderCreateArtificialType(
776 Builder: LLVMDIBuilderRef,
777 Type: LLVMMetadataRef,
778 ) -> LLVMMetadataRef;
779
780 pub fn LLVMDITypeGetName(
782 DType: LLVMMetadataRef,
783 Length: *mut ::libc::size_t,
784 ) -> *const ::libc::c_char;
785
786 pub fn LLVMDITypeGetSizeInBits(DType: LLVMMetadataRef) -> u64;
788
789 pub fn LLVMDITypeGetOffsetInBits(DType: LLVMMetadataRef) -> u64;
791
792 pub fn LLVMDITypeGetAlignInBits(DType: LLVMMetadataRef) -> u32;
794
795 pub fn LLVMDITypeGetLine(DType: LLVMMetadataRef) -> ::libc::c_uint;
797
798 pub fn LLVMDITypeGetFlags(DType: LLVMMetadataRef) -> LLVMDIFlags;
800
801 pub fn LLVMDIBuilderGetOrCreateSubrange(
803 Builder: LLVMDIBuilderRef,
804 LowerBound: i64,
805 Count: i64,
806 ) -> LLVMMetadataRef;
807
808 pub fn LLVMDIBuilderGetOrCreateArray(
810 Builder: LLVMDIBuilderRef,
811 Data: *mut LLVMMetadataRef,
812 NumElements: ::libc::size_t,
813 ) -> LLVMMetadataRef;
814
815 pub fn LLVMDIBuilderCreateExpression(
817 Builder: LLVMDIBuilderRef,
818 Addr: *mut u64,
819 Length: ::libc::size_t,
820 ) -> LLVMMetadataRef;
821
822 pub fn LLVMDIBuilderCreateConstantValueExpression(
824 Builder: LLVMDIBuilderRef,
825 Value: u64,
826 ) -> LLVMMetadataRef;
827
828 pub fn LLVMDIBuilderCreateGlobalVariableExpression(
830 Builder: LLVMDIBuilderRef,
831 Scope: LLVMMetadataRef,
832 Name: *const ::libc::c_char,
833 NameLen: ::libc::size_t,
834 Linkage: *const ::libc::c_char,
835 LinkLen: ::libc::size_t,
836 File: LLVMMetadataRef,
837 LineNo: ::libc::c_uint,
838 Ty: LLVMMetadataRef,
839 LocalToUnit: LLVMBool,
840 Expr: LLVMMetadataRef,
841 Decl: LLVMMetadataRef,
842 AlignInBits: u32,
843 ) -> LLVMMetadataRef;
844
845 pub fn LLVMGetDINodeTag(MD: LLVMMetadataRef) -> u16;
847
848 pub fn LLVMDIGlobalVariableExpressionGetVariable(GVE: LLVMMetadataRef) -> LLVMMetadataRef;
850
851 pub fn LLVMDIGlobalVariableExpressionGetExpression(GVE: LLVMMetadataRef) -> LLVMMetadataRef;
853
854 pub fn LLVMDIVariableGetFile(Var: LLVMMetadataRef) -> LLVMMetadataRef;
856
857 pub fn LLVMDIVariableGetScope(Var: LLVMMetadataRef) -> LLVMMetadataRef;
859
860 pub fn LLVMDIVariableGetLine(Var: LLVMMetadataRef) -> ::libc::c_uint;
862
863 pub fn LLVMTemporaryMDNode(
865 Ctx: LLVMContextRef,
866 Data: *mut LLVMMetadataRef,
867 NumElements: ::libc::size_t,
868 ) -> LLVMMetadataRef;
869
870 pub fn LLVMDisposeTemporaryMDNode(TempNode: LLVMMetadataRef);
872
873 pub fn LLVMMetadataReplaceAllUsesWith(
875 TempTargetMetadata: LLVMMetadataRef,
876 Replacement: LLVMMetadataRef,
877 );
878
879 pub fn LLVMDIBuilderCreateTempGlobalVariableFwdDecl(
881 Builder: LLVMDIBuilderRef,
882 Scope: LLVMMetadataRef,
883 Name: *const ::libc::c_char,
884 NameLen: ::libc::size_t,
885 Linkage: *const ::libc::c_char,
886 LnkLen: ::libc::size_t,
887 File: LLVMMetadataRef,
888 LineNo: ::libc::c_uint,
889 Ty: LLVMMetadataRef,
890 LocalToUnit: LLVMBool,
891 Decl: LLVMMetadataRef,
892 AlignInBits: u32,
893 ) -> LLVMMetadataRef;
894
895 pub fn LLVMDIBuilderInsertDeclareRecordBefore(
899 Builder: LLVMDIBuilderRef,
900 Storage: LLVMValueRef,
901 VarInfo: LLVMMetadataRef,
902 Expr: LLVMMetadataRef,
903 DebugLoc: LLVMMetadataRef,
904 Instr: LLVMValueRef,
905 ) -> LLVMDbgRecordRef;
906
907 pub fn LLVMDIBuilderInsertDeclareRecordAtEnd(
913 Builder: LLVMDIBuilderRef,
914 Storage: LLVMValueRef,
915 VarInfo: LLVMMetadataRef,
916 Expr: LLVMMetadataRef,
917 DebugLoc: LLVMMetadataRef,
918 Block: LLVMBasicBlockRef,
919 ) -> LLVMDbgRecordRef;
920
921 pub fn LLVMDIBuilderInsertDbgValueRecordBefore(
925 Builder: LLVMDIBuilderRef,
926 Val: LLVMValueRef,
927 VarInfo: LLVMMetadataRef,
928 Expr: LLVMMetadataRef,
929 DebugLoc: LLVMMetadataRef,
930 Instr: LLVMValueRef,
931 ) -> LLVMDbgRecordRef;
932
933 pub fn LLVMDIBuilderInsertDbgValueRecordAtEnd(
939 Builder: LLVMDIBuilderRef,
940 Val: LLVMValueRef,
941 VarInfo: LLVMMetadataRef,
942 Expr: LLVMMetadataRef,
943 DebugLoc: LLVMMetadataRef,
944 Block: LLVMBasicBlockRef,
945 ) -> LLVMDbgRecordRef;
946
947 pub fn LLVMDIBuilderCreateAutoVariable(
949 Builder: LLVMDIBuilderRef,
950 Scope: LLVMMetadataRef,
951 Name: *const ::libc::c_char,
952 NameLen: ::libc::size_t,
953 File: LLVMMetadataRef,
954 LineNo: ::libc::c_uint,
955 Ty: LLVMMetadataRef,
956 AlwaysPreserve: LLVMBool,
957 Flags: LLVMDIFlags,
958 AlignInBits: u32,
959 ) -> LLVMMetadataRef;
960
961 pub fn LLVMDIBuilderCreateParameterVariable(
963 Builder: LLVMDIBuilderRef,
964 Scope: LLVMMetadataRef,
965 Name: *const ::libc::c_char,
966 NameLen: ::libc::size_t,
967 ArgNo: ::libc::c_uint,
968 File: LLVMMetadataRef,
969 LineNo: ::libc::c_uint,
970 Ty: LLVMMetadataRef,
971 AlwaysPreserve: LLVMBool,
972 Flags: LLVMDIFlags,
973 ) -> LLVMMetadataRef;
974
975 pub fn LLVMGetSubprogram(Func: LLVMValueRef) -> LLVMMetadataRef;
977
978 pub fn LLVMSetSubprogram(Func: LLVMValueRef, SP: LLVMMetadataRef);
980
981 pub fn LLVMDISubprogramGetLine(Subprogram: LLVMMetadataRef) -> ::libc::c_uint;
983
984 pub fn LLVMInstructionGetDebugLoc(Inst: LLVMValueRef) -> LLVMMetadataRef;
986
987 pub fn LLVMInstructionSetDebugLoc(Inst: LLVMValueRef, Loc: LLVMMetadataRef);
989
990 pub fn LLVMDIBuilderCreateLabel(
992 Builder: LLVMDIBuilderRef,
993 Context: LLVMMetadataRef,
994 Name: *const ::libc::c_char,
995 NameLen: ::libc::size_t,
996 File: LLVMMetadataRef,
997 LineNo: ::libc::size_t,
998 AlwaysPreserve: LLVMBool,
999 ) -> LLVMMetadataRef;
1000
1001 pub fn LLVMDIBuilderInsertLabelBefore(
1003 Builder: LLVMDIBuilderRef,
1004 LabelInfo: LLVMMetadataRef,
1005 Location: LLVMMetadataRef,
1006 InsertBefore: LLVMValueRef,
1007 ) -> LLVMDbgRecordRef;
1008
1009 pub fn LLVMDIBuilderInsertLabelAtEnd(
1011 Builder: LLVMDIBuilderRef,
1012 LabelInfo: LLVMMetadataRef,
1013 Location: LLVMMetadataRef,
1014 InsertAtEnd: LLVMBasicBlockRef,
1015 );
1016
1017 pub fn LLVMGetMetadataKind(Metadata: LLVMMetadataRef) -> LLVMMetadataKind;
1019}