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
168#[repr(C)]
169#[derive(Debug)]
170pub enum LLVMChecksumKind {
171 CSK_MD5,
172 CSK_SHA1,
173 CSK_SHA256,
174}
175
176pub type LLVMDWARFTypeEncoding = ::libc::c_uint;
177
178#[repr(C)]
179#[derive(Debug)]
180pub enum LLVMDWARFMacinfoRecordType {
181 LLVMDWARFMacinfoRecordTypeDefine = 0x01,
182 LLVMDWARFMacinfoRecordTypeMacro = 0x02,
183 LLVMDWARFMacinfoRecordTypeStartFile = 0x03,
184 LLVMDWARFMacinfoRecordTypeEndFile = 0x04,
185 LLVMDWARFMacinfoRecordTypeVendorExt = 0xff,
186}
187
188extern "C" {
189 pub fn LLVMDebugMetadataVersion() -> ::libc::c_uint;
191 pub fn LLVMGetModuleDebugMetadataVersion(Module: LLVMModuleRef) -> ::libc::c_uint;
193 pub fn LLVMStripModuleDebugInfo(Module: LLVMModuleRef) -> LLVMBool;
195 pub fn LLVMCreateDIBuilderDisallowUnresolved(M: LLVMModuleRef) -> LLVMDIBuilderRef;
197 pub fn LLVMCreateDIBuilder(M: LLVMModuleRef) -> LLVMDIBuilderRef;
199 pub fn LLVMDisposeDIBuilder(Builder: LLVMDIBuilderRef);
203 pub fn LLVMDIBuilderFinalize(Builder: LLVMDIBuilderRef);
205 pub fn LLVMDIBuilderFinalizeSubprogram(Builder: LLVMDIBuilderRef, Subprogram: LLVMMetadataRef);
208 pub fn LLVMDIBuilderCreateCompileUnit(
209 Builder: LLVMDIBuilderRef,
210 Lang: LLVMDWARFSourceLanguage,
211 FileRef: LLVMMetadataRef,
212 Producer: *const ::libc::c_char,
213 ProducerLen: ::libc::size_t,
214 isOptimized: LLVMBool,
215 Flags: *const ::libc::c_char,
216 FlagsLen: ::libc::size_t,
217 RuntimeVer: ::libc::c_uint,
218 SplitName: *const ::libc::c_char,
219 SplitNameLen: ::libc::size_t,
220 Kind: LLVMDWARFEmissionKind,
221 DWOId: ::libc::c_uint,
222 SplitDebugInlining: LLVMBool,
223 DebugInfoForProfiling: LLVMBool,
224 SysRoot: *const ::libc::c_char,
225 SysRootLen: ::libc::size_t,
226 SDK: *const ::libc::c_char,
227 SDKLen: ::libc::size_t,
228 ) -> LLVMMetadataRef;
229 pub fn LLVMDIBuilderCreateFile(
231 Builder: LLVMDIBuilderRef,
232 Filename: *const ::libc::c_char,
233 FilenameLen: ::libc::size_t,
234 Directory: *const ::libc::c_char,
235 DirectoryLen: ::libc::size_t,
236 ) -> LLVMMetadataRef;
237 pub fn LLVMDIBuilderCreateFileWithChecksum(
239 Builder: LLVMDIBuilderRef,
240 Filename: *const ::libc::c_char,
241 FilenameLen: ::libc::size_t,
242 Directory: *const ::libc::c_char,
243 DirectoryLen: ::libc::size_t,
244 ChecksumKind: LLVMChecksumKind,
245 Checksum: *const ::libc::c_char,
246 ChecksumLen: ::libc::size_t,
247 Source: *const ::libc::c_char,
248 SourceLen: ::libc::size_t,
249 ) -> LLVMMetadataRef;
250
251 pub fn LLVMDIBuilderCreateModule(
253 Builder: LLVMDIBuilderRef,
254 ParentScope: LLVMMetadataRef,
255 Name: *const ::libc::c_char,
256 NameLen: ::libc::size_t,
257 ConfigMacros: *const ::libc::c_char,
258 ConfigMacrosLen: ::libc::size_t,
259 IncludePath: *const ::libc::c_char,
260 IncludePathLen: ::libc::size_t,
261 APINotesFile: *const ::libc::c_char,
262 APINotesFileLen: ::libc::size_t,
263 ) -> LLVMMetadataRef;
264
265 pub fn LLVMDIBuilderCreateNameSpace(
267 Builder: LLVMDIBuilderRef,
268 ParentScope: LLVMMetadataRef,
269 Name: *const ::libc::c_char,
270 NameLen: ::libc::size_t,
271 ExportSymbols: LLVMBool,
272 ) -> LLVMMetadataRef;
273
274 pub fn LLVMDIBuilderCreateFunction(
276 Builder: LLVMDIBuilderRef,
277 Scope: LLVMMetadataRef,
278 Name: *const ::libc::c_char,
279 NameLen: ::libc::size_t,
280 LinkageName: *const ::libc::c_char,
281 LinkageNameLen: ::libc::size_t,
282 File: LLVMMetadataRef,
283 LineNo: ::libc::c_uint,
284 Ty: LLVMMetadataRef,
285 IsLocalToUnit: LLVMBool,
286 IsDefinition: LLVMBool,
287 ScopeLine: ::libc::c_uint,
288 Flags: LLVMDIFlags,
289 IsOptimized: LLVMBool,
290 ) -> LLVMMetadataRef;
291
292 pub fn LLVMDIBuilderCreateLexicalBlock(
294 Builder: LLVMDIBuilderRef,
295 Scope: LLVMMetadataRef,
296 File: LLVMMetadataRef,
297 Line: ::libc::c_uint,
298 Column: ::libc::c_uint,
299 ) -> LLVMMetadataRef;
300
301 pub fn LLVMDIBuilderCreateLexicalBlockFile(
303 Builder: LLVMDIBuilderRef,
304 Scope: LLVMMetadataRef,
305 File: LLVMMetadataRef,
306 Discriminator: ::libc::c_uint,
307 ) -> LLVMMetadataRef;
308
309 pub fn LLVMDIBuilderCreateImportedModuleFromNamespace(
311 Builder: LLVMDIBuilderRef,
312 Scope: LLVMMetadataRef,
313 NS: LLVMMetadataRef,
314 File: LLVMMetadataRef,
315 Line: ::libc::c_uint,
316 ) -> LLVMMetadataRef;
317
318 pub fn LLVMDIBuilderCreateImportedModuleFromAlias(
320 Builder: LLVMDIBuilderRef,
321 Scope: LLVMMetadataRef,
322 ImportedEntity: LLVMMetadataRef,
323 File: LLVMMetadataRef,
324 Line: ::libc::c_uint,
325 Elements: *mut LLVMMetadataRef,
326 NumElements: ::libc::c_uint,
327 ) -> LLVMMetadataRef;
328
329 pub fn LLVMDIBuilderCreateImportedModuleFromModule(
331 Builder: LLVMDIBuilderRef,
332 Scope: LLVMMetadataRef,
333 M: LLVMMetadataRef,
334 File: LLVMMetadataRef,
335 Line: ::libc::c_uint,
336 Elements: *mut LLVMMetadataRef,
337 NumElements: ::libc::c_uint,
338 ) -> LLVMMetadataRef;
339
340 pub fn LLVMDIBuilderCreateImportedDeclaration(
344 Builder: LLVMDIBuilderRef,
345 Scope: LLVMMetadataRef,
346 Decl: LLVMMetadataRef,
347 File: LLVMMetadataRef,
348 Line: ::libc::c_uint,
349 Name: *const ::libc::c_char,
350 NameLen: ::libc::size_t,
351 Elements: *mut LLVMMetadataRef,
352 NumElements: ::libc::c_uint,
353 ) -> LLVMMetadataRef;
354
355 pub fn LLVMDIBuilderCreateDebugLocation(
357 Ctx: LLVMContextRef,
358 Line: ::libc::c_uint,
359 Column: ::libc::c_uint,
360 Scope: LLVMMetadataRef,
361 InlinedAt: LLVMMetadataRef,
362 ) -> LLVMMetadataRef;
363
364 pub fn LLVMDILocationGetLine(Location: LLVMMetadataRef) -> ::libc::c_uint;
366
367 pub fn LLVMDILocationGetColumn(Location: LLVMMetadataRef) -> ::libc::c_uint;
369
370 pub fn LLVMDILocationGetScope(Location: LLVMMetadataRef) -> LLVMMetadataRef;
372
373 pub fn LLVMDILocationGetInlinedAt(Location: LLVMMetadataRef) -> LLVMMetadataRef;
375
376 pub fn LLVMDIScopeGetFile(Scope: LLVMMetadataRef) -> LLVMMetadataRef;
378
379 pub fn LLVMDIFileGetDirectory(
381 File: LLVMMetadataRef,
382 Len: *mut ::libc::c_uint,
383 ) -> *const ::libc::c_char;
384
385 pub fn LLVMDIFileGetFilename(
387 File: LLVMMetadataRef,
388 Len: *mut ::libc::c_uint,
389 ) -> *const ::libc::c_char;
390
391 pub fn LLVMDIFileGetSource(
393 File: LLVMMetadataRef,
394 Len: *mut ::libc::c_uint,
395 ) -> *const ::libc::c_char;
396
397 pub fn LLVMDIBuilderGetOrCreateTypeArray(
399 Builder: LLVMDIBuilderRef,
400 Data: *mut LLVMMetadataRef,
401 NumElements: ::libc::size_t,
402 ) -> LLVMMetadataRef;
403
404 pub fn LLVMDIBuilderCreateSubroutineType(
406 Builder: LLVMDIBuilderRef,
407 File: LLVMMetadataRef,
408 ParameterTypes: *mut LLVMMetadataRef,
409 NumParameterTypes: ::libc::c_uint,
410 Flags: LLVMDIFlags,
411 ) -> LLVMMetadataRef;
412
413 pub fn LLVMDIBuilderCreateMacro(
414 Builder: LLVMDIBuilderRef,
415 ParentMacroFile: LLVMMetadataRef,
416 Line: ::libc::c_uint,
417 RecordType: LLVMDWARFMacinfoRecordType,
418 Name: *const ::libc::c_char,
419 NameLen: usize,
420 Value: *const ::libc::c_char,
421 ValueLen: usize,
422 ) -> LLVMMetadataRef;
423
424 pub fn LLVMDIBuilderCreateTempMacroFile(
425 Builder: LLVMDIBuilderRef,
426 ParentMacroFile: LLVMMetadataRef,
427 Line: ::libc::c_uint,
428 File: LLVMMetadataRef,
429 ) -> LLVMMetadataRef;
430
431 pub fn LLVMDIBuilderCreateEnumerator(
433 Builder: LLVMDIBuilderRef,
434 Name: *const ::libc::c_char,
435 NameLen: ::libc::size_t,
436 Value: i64,
437 IsUnsigned: LLVMBool,
438 ) -> LLVMMetadataRef;
439
440 pub fn LLVMDIBuilderCreateEnumeratorOfArbitraryPrecision(
442 Builder: LLVMDIBuilderRef,
443 Name: *const ::libc::c_char,
444 NameLen: ::libc::size_t,
445 SizeInBits: u64,
446 Words: *const u64,
447 IsUnsigned: LLVMBool,
448 ) -> LLVMMetadataRef;
449
450 pub fn LLVMDIBuilderCreateEnumerationType(
452 Builder: LLVMDIBuilderRef,
453 Scope: LLVMMetadataRef,
454 Name: *const ::libc::c_char,
455 NameLen: ::libc::size_t,
456 File: LLVMMetadataRef,
457 LineNumber: ::libc::c_uint,
458 SizeInBits: u64,
459 AlignInBits: u32,
460 Elements: *mut LLVMMetadataRef,
461 NumElements: ::libc::c_uint,
462 ClassTy: LLVMMetadataRef,
463 ) -> LLVMMetadataRef;
464
465 pub fn LLVMDIBuilderCreateUnionType(
467 Builder: LLVMDIBuilderRef,
468 Scope: LLVMMetadataRef,
469 Name: *const ::libc::c_char,
470 NameLen: ::libc::size_t,
471 File: LLVMMetadataRef,
472 LineNumber: ::libc::c_uint,
473 SizeInBits: u64,
474 AlignInBits: u32,
475 Flags: LLVMDIFlags,
476 Elements: *mut LLVMMetadataRef,
477 NumElements: ::libc::c_uint,
478 RunTimeLang: ::libc::c_uint,
479 UniqueId: *const ::libc::c_char,
480 UniqueIdLen: ::libc::size_t,
481 ) -> LLVMMetadataRef;
482
483 pub fn LLVMDIBuilderCreateArrayType(
485 Builder: LLVMDIBuilderRef,
486 Size: u64,
487 AlignInBits: u32,
488 Ty: LLVMMetadataRef,
489 Subscripts: *mut LLVMMetadataRef,
490 NumSubscripts: ::libc::c_uint,
491 ) -> LLVMMetadataRef;
492
493 pub fn LLVMDIBuilderCreateSetType(
495 Builder: LLVMDIBuilderRef,
496 Scope: LLVMMetadataRef,
497 Name: *const ::libc::c_char,
498 NameLen: ::libc::size_t,
499 File: LLVMMetadataRef,
500 LineNumber: ::libc::c_uint,
501 SizeInBits: u64,
502 AlignInBits: u32,
503 BaseTy: LLVMMetadataRef,
504 ) -> LLVMMetadataRef;
505
506 pub fn LLVMDIBuilderCreateSubrangeType(
508 Builder: LLVMDIBuilderRef,
509 Scope: LLVMMetadataRef,
510 Name: *const ::libc::c_char,
511 NameLen: ::libc::size_t,
512 LineNo: ::libc::c_uint,
513 File: LLVMMetadataRef,
514 SizeInBits: u64,
515 AlignInBits: u32,
516 Flags: LLVMDIFlags,
517 BaseTy: LLVMMetadataRef,
518 LowerBound: LLVMMetadataRef,
519 UpperBound: LLVMMetadataRef,
520 Stride: LLVMMetadataRef,
521 Bias: LLVMMetadataRef,
522 ) -> LLVMMetadataRef;
523
524 pub fn LLVMDIBuilderCreateDynamicArrayType(
526 Builder: LLVMDIBuilderRef,
527 Scope: LLVMMetadataRef,
528 Name: *const ::libc::c_char,
529 NameLen: ::libc::size_t,
530 LineNo: ::libc::c_uint,
531 File: LLVMMetadataRef,
532 Size: u64,
533 AlignInBits: u32,
534 Ty: LLVMMetadataRef,
535 Subscripts: LLVMMetadataRef,
536 NumSubscripts: ::libc::c_uint,
537 DataLocation: LLVMMetadataRef,
538 Associated: LLVMMetadataRef,
539 Allocated: LLVMMetadataRef,
540 Rank: LLVMMetadataRef,
541 BitStride: LLVMMetadataRef,
542 ) -> LLVMMetadataRef;
543
544 pub fn LLVMReplaceArrays(
546 Builder: LLVMDIBuilderRef,
547 T: *mut LLVMMetadataRef,
548 Elements: *mut LLVMMetadataRef,
549 NumElements: ::libc::c_uint,
550 );
551
552 pub fn LLVMDIBuilderCreateVectorType(
554 Builder: LLVMDIBuilderRef,
555 Size: u64,
556 AlignInBits: u32,
557 Ty: LLVMMetadataRef,
558 Subscripts: *mut LLVMMetadataRef,
559 NumSubscripts: ::libc::c_uint,
560 ) -> LLVMMetadataRef;
561
562 pub fn LLVMDIBuilderCreateUnspecifiedType(
564 Builder: LLVMDIBuilderRef,
565 Name: *const ::libc::c_char,
566 NameLen: ::libc::size_t,
567 ) -> LLVMMetadataRef;
568
569 pub fn LLVMDIBuilderCreateBasicType(
571 Builder: LLVMDIBuilderRef,
572 Name: *const ::libc::c_char,
573 NameLen: ::libc::size_t,
574 SizeInBits: u64,
575 Encoding: LLVMDWARFTypeEncoding,
576 Flags: LLVMDIFlags,
577 ) -> LLVMMetadataRef;
578
579 pub fn LLVMDIBuilderCreatePointerType(
581 Builder: LLVMDIBuilderRef,
582 PointeeTy: LLVMMetadataRef,
583 SizeInBits: u64,
584 AlignInBits: u32,
585 AddressSpace: ::libc::c_uint,
586 Name: *const ::libc::c_char,
587 NameLen: ::libc::size_t,
588 ) -> LLVMMetadataRef;
589
590 pub fn LLVMDIBuilderCreateStructType(
592 Builder: LLVMDIBuilderRef,
593 Scope: LLVMMetadataRef,
594 Name: *const ::libc::c_char,
595 NameLen: ::libc::size_t,
596 File: LLVMMetadataRef,
597 LineNumber: ::libc::c_uint,
598 SizeInBits: u64,
599 AlignInBits: u32,
600 Flags: LLVMDIFlags,
601 DerivedFrom: LLVMMetadataRef,
602 Elements: *mut LLVMMetadataRef,
603 NumElements: ::libc::c_uint,
604 RunTimeLang: ::libc::c_uint,
605 VTableHolder: LLVMMetadataRef,
606 UniqueId: *const ::libc::c_char,
607 UniqueIdLen: ::libc::size_t,
608 ) -> LLVMMetadataRef;
609
610 pub fn LLVMDIBuilderCreateMemberType(
612 Builder: LLVMDIBuilderRef,
613 Scope: LLVMMetadataRef,
614 Name: *const ::libc::c_char,
615 NameLen: ::libc::size_t,
616 File: LLVMMetadataRef,
617 LineNo: ::libc::c_uint,
618 SizeInBits: u64,
619 AlignInBits: u32,
620 OffsetInBits: u64,
621 Flags: LLVMDIFlags,
622 Ty: LLVMMetadataRef,
623 ) -> LLVMMetadataRef;
624
625 pub fn LLVMDIBuilderCreateStaticMemberType(
627 Builder: LLVMDIBuilderRef,
628 Scope: LLVMMetadataRef,
629 Name: *const ::libc::c_char,
630 NameLen: ::libc::size_t,
631 File: LLVMMetadataRef,
632 LineNumber: ::libc::c_uint,
633 Type: LLVMMetadataRef,
634 Flags: LLVMDIFlags,
635 ConstantVal: LLVMValueRef,
636 AlignInBits: u32,
637 ) -> LLVMMetadataRef;
638
639 pub fn LLVMDIBuilderCreateMemberPointerType(
641 Builder: LLVMDIBuilderRef,
642 PointeeType: LLVMMetadataRef,
643 ClassType: LLVMMetadataRef,
644 SizeInBits: u64,
645 AlignInBits: u32,
646 Flags: LLVMDIFlags,
647 ) -> LLVMMetadataRef;
648
649 pub fn LLVMDIBuilderCreateObjCIVar(
651 Builder: LLVMDIBuilderRef,
652 Name: *const ::libc::c_char,
653 NameLen: ::libc::size_t,
654 File: LLVMMetadataRef,
655 LineNo: ::libc::c_uint,
656 SizeInBits: u64,
657 AlignInBits: u32,
658 OffsetInBits: u64,
659 Flags: LLVMDIFlags,
660 Ty: LLVMMetadataRef,
661 PropertyNode: LLVMMetadataRef,
662 ) -> LLVMMetadataRef;
663
664 pub fn LLVMDIBuilderCreateObjCProperty(
666 Builder: LLVMDIBuilderRef,
667 Name: *const ::libc::c_char,
668 NameLen: ::libc::size_t,
669 File: LLVMMetadataRef,
670 LineNo: ::libc::c_uint,
671 GetterName: *const ::libc::c_char,
672 GetterNameLen: ::libc::size_t,
673 SetterName: *const ::libc::c_char,
674 SetterNameLen: ::libc::size_t,
675 PropertyAttributes: ::libc::c_uint,
676 Ty: LLVMMetadataRef,
677 ) -> LLVMMetadataRef;
678
679 pub fn LLVMDIBuilderCreateObjectPointerType(
682 Builder: LLVMDIBuilderRef,
683 Type: LLVMMetadataRef,
684 Implicit: LLVMBool,
685 ) -> LLVMMetadataRef;
686
687 pub fn LLVMDIBuilderCreateQualifiedType(
689 Builder: LLVMDIBuilderRef,
690 Tag: ::libc::c_uint,
691 Type: LLVMMetadataRef,
692 ) -> LLVMMetadataRef;
693
694 pub fn LLVMDIBuilderCreateReferenceType(
696 Builder: LLVMDIBuilderRef,
697 Tag: ::libc::c_uint,
698 Type: LLVMMetadataRef,
699 ) -> LLVMMetadataRef;
700
701 pub fn LLVMDIBuilderCreateNullPtrType(Builder: LLVMDIBuilderRef) -> LLVMMetadataRef;
703
704 pub fn LLVMDIBuilderCreateTypedef(
706 Builder: LLVMDIBuilderRef,
707 Type: LLVMMetadataRef,
708 Name: *const ::libc::c_char,
709 NameLen: ::libc::size_t,
710 File: LLVMMetadataRef,
711 LineNo: ::libc::c_uint,
712 Scope: LLVMMetadataRef,
713 AlignInBits: u32,
714 ) -> LLVMMetadataRef;
715
716 pub fn LLVMDIBuilderCreateInheritance(
718 Builder: LLVMDIBuilderRef,
719 Ty: LLVMMetadataRef,
720 BaseTy: LLVMMetadataRef,
721 BaseOffset: u64,
722 VBPtrOffset: u32,
723 Flags: LLVMDIFlags,
724 ) -> LLVMMetadataRef;
725
726 pub fn LLVMDIBuilderCreateForwardDecl(
728 Builder: LLVMDIBuilderRef,
729 Tag: ::libc::c_uint,
730 Name: *const ::libc::c_char,
731 NameLen: ::libc::size_t,
732 Scope: LLVMMetadataRef,
733 File: LLVMMetadataRef,
734 Line: ::libc::c_uint,
735 RuntimeLang: ::libc::c_uint,
736 SizeInBits: u64,
737 AlignInBits: u32,
738 UniqueIdentifier: *const ::libc::c_char,
739 UniqueIdentifierLen: ::libc::size_t,
740 ) -> LLVMMetadataRef;
741
742 pub fn LLVMDIBuilderCreateReplaceableCompositeType(
744 Builder: LLVMDIBuilderRef,
745 Tag: ::libc::c_uint,
746 Name: *const ::libc::c_char,
747 NameLen: ::libc::size_t,
748 Scope: LLVMMetadataRef,
749 File: LLVMMetadataRef,
750 Line: ::libc::c_uint,
751 RuntimeLang: ::libc::c_uint,
752 SizeInBits: u64,
753 AlignInBits: u32,
754 Flags: LLVMDIFlags,
755 UniqueIdentifier: *const ::libc::c_char,
756 UniqueIdentifierLen: ::libc::size_t,
757 ) -> LLVMMetadataRef;
758
759 pub fn LLVMDIBuilderCreateBitFieldMemberType(
761 Builder: LLVMDIBuilderRef,
762 Scope: LLVMMetadataRef,
763 Name: *const ::libc::c_char,
764 NameLen: ::libc::size_t,
765 File: LLVMMetadataRef,
766 LineNumber: ::libc::c_uint,
767 SizeInBits: u64,
768 OffsetInBits: u64,
769 StorageOffsetInBits: u64,
770 Flags: LLVMDIFlags,
771 Type: LLVMMetadataRef,
772 ) -> LLVMMetadataRef;
773
774 pub fn LLVMDIBuilderCreateClassType(
776 Builder: LLVMDIBuilderRef,
777 Scope: LLVMMetadataRef,
778 Name: *const ::libc::c_char,
779 NameLen: ::libc::size_t,
780 File: LLVMMetadataRef,
781 LineNumber: ::libc::c_uint,
782 SizeInBits: u64,
783 AlignInBits: u32,
784 OffsetInBits: u64,
785 Flags: LLVMDIFlags,
786 DerivedFrom: LLVMMetadataRef,
787 Elements: *mut LLVMMetadataRef,
788 NumElements: ::libc::c_uint,
789 VTableHolder: LLVMMetadataRef,
790 TemplateParamsNode: LLVMMetadataRef,
791 UniqueIdentifier: *const ::libc::c_char,
792 UniqueIdentifierLen: ::libc::size_t,
793 ) -> LLVMMetadataRef;
794
795 pub fn LLVMDIBuilderCreateArtificialType(
797 Builder: LLVMDIBuilderRef,
798 Type: LLVMMetadataRef,
799 ) -> LLVMMetadataRef;
800
801 pub fn LLVMDITypeGetName(
803 DType: LLVMMetadataRef,
804 Length: *mut ::libc::size_t,
805 ) -> *const ::libc::c_char;
806
807 pub fn LLVMDITypeGetSizeInBits(DType: LLVMMetadataRef) -> u64;
809
810 pub fn LLVMDITypeGetOffsetInBits(DType: LLVMMetadataRef) -> u64;
812
813 pub fn LLVMDITypeGetAlignInBits(DType: LLVMMetadataRef) -> u32;
815
816 pub fn LLVMDITypeGetLine(DType: LLVMMetadataRef) -> ::libc::c_uint;
818
819 pub fn LLVMDITypeGetFlags(DType: LLVMMetadataRef) -> LLVMDIFlags;
821
822 pub fn LLVMDIBuilderGetOrCreateSubrange(
824 Builder: LLVMDIBuilderRef,
825 LowerBound: i64,
826 Count: i64,
827 ) -> LLVMMetadataRef;
828
829 pub fn LLVMDIBuilderGetOrCreateArray(
831 Builder: LLVMDIBuilderRef,
832 Data: *mut LLVMMetadataRef,
833 NumElements: ::libc::size_t,
834 ) -> LLVMMetadataRef;
835
836 pub fn LLVMDIBuilderCreateExpression(
838 Builder: LLVMDIBuilderRef,
839 Addr: *mut u64,
840 Length: ::libc::size_t,
841 ) -> LLVMMetadataRef;
842
843 pub fn LLVMDIBuilderCreateConstantValueExpression(
845 Builder: LLVMDIBuilderRef,
846 Value: u64,
847 ) -> LLVMMetadataRef;
848
849 pub fn LLVMDIBuilderCreateGlobalVariableExpression(
851 Builder: LLVMDIBuilderRef,
852 Scope: LLVMMetadataRef,
853 Name: *const ::libc::c_char,
854 NameLen: ::libc::size_t,
855 Linkage: *const ::libc::c_char,
856 LinkLen: ::libc::size_t,
857 File: LLVMMetadataRef,
858 LineNo: ::libc::c_uint,
859 Ty: LLVMMetadataRef,
860 LocalToUnit: LLVMBool,
861 Expr: LLVMMetadataRef,
862 Decl: LLVMMetadataRef,
863 AlignInBits: u32,
864 ) -> LLVMMetadataRef;
865
866 pub fn LLVMGetDINodeTag(MD: LLVMMetadataRef) -> u16;
868
869 pub fn LLVMDIGlobalVariableExpressionGetVariable(GVE: LLVMMetadataRef) -> LLVMMetadataRef;
871
872 pub fn LLVMDIGlobalVariableExpressionGetExpression(GVE: LLVMMetadataRef) -> LLVMMetadataRef;
874
875 pub fn LLVMDIVariableGetFile(Var: LLVMMetadataRef) -> LLVMMetadataRef;
877
878 pub fn LLVMDIVariableGetScope(Var: LLVMMetadataRef) -> LLVMMetadataRef;
880
881 pub fn LLVMDIVariableGetLine(Var: LLVMMetadataRef) -> ::libc::c_uint;
883
884 pub fn LLVMTemporaryMDNode(
886 Ctx: LLVMContextRef,
887 Data: *mut LLVMMetadataRef,
888 NumElements: ::libc::size_t,
889 ) -> LLVMMetadataRef;
890
891 pub fn LLVMDisposeTemporaryMDNode(TempNode: LLVMMetadataRef);
893
894 pub fn LLVMMetadataReplaceAllUsesWith(
896 TempTargetMetadata: LLVMMetadataRef,
897 Replacement: LLVMMetadataRef,
898 );
899
900 pub fn LLVMDIBuilderCreateTempGlobalVariableFwdDecl(
902 Builder: LLVMDIBuilderRef,
903 Scope: LLVMMetadataRef,
904 Name: *const ::libc::c_char,
905 NameLen: ::libc::size_t,
906 Linkage: *const ::libc::c_char,
907 LnkLen: ::libc::size_t,
908 File: LLVMMetadataRef,
909 LineNo: ::libc::c_uint,
910 Ty: LLVMMetadataRef,
911 LocalToUnit: LLVMBool,
912 Decl: LLVMMetadataRef,
913 AlignInBits: u32,
914 ) -> LLVMMetadataRef;
915
916 pub fn LLVMDIBuilderInsertDeclareRecordBefore(
920 Builder: LLVMDIBuilderRef,
921 Storage: LLVMValueRef,
922 VarInfo: LLVMMetadataRef,
923 Expr: LLVMMetadataRef,
924 DebugLoc: LLVMMetadataRef,
925 Instr: LLVMValueRef,
926 ) -> LLVMDbgRecordRef;
927
928 pub fn LLVMDIBuilderInsertDeclareRecordAtEnd(
934 Builder: LLVMDIBuilderRef,
935 Storage: LLVMValueRef,
936 VarInfo: LLVMMetadataRef,
937 Expr: LLVMMetadataRef,
938 DebugLoc: LLVMMetadataRef,
939 Block: LLVMBasicBlockRef,
940 ) -> LLVMDbgRecordRef;
941
942 pub fn LLVMDIBuilderInsertDbgValueRecordBefore(
946 Builder: LLVMDIBuilderRef,
947 Val: LLVMValueRef,
948 VarInfo: LLVMMetadataRef,
949 Expr: LLVMMetadataRef,
950 DebugLoc: LLVMMetadataRef,
951 Instr: LLVMValueRef,
952 ) -> LLVMDbgRecordRef;
953
954 pub fn LLVMDIBuilderInsertDbgValueRecordAtEnd(
960 Builder: LLVMDIBuilderRef,
961 Val: LLVMValueRef,
962 VarInfo: LLVMMetadataRef,
963 Expr: LLVMMetadataRef,
964 DebugLoc: LLVMMetadataRef,
965 Block: LLVMBasicBlockRef,
966 ) -> LLVMDbgRecordRef;
967
968 pub fn LLVMDIBuilderCreateAutoVariable(
970 Builder: LLVMDIBuilderRef,
971 Scope: LLVMMetadataRef,
972 Name: *const ::libc::c_char,
973 NameLen: ::libc::size_t,
974 File: LLVMMetadataRef,
975 LineNo: ::libc::c_uint,
976 Ty: LLVMMetadataRef,
977 AlwaysPreserve: LLVMBool,
978 Flags: LLVMDIFlags,
979 AlignInBits: u32,
980 ) -> LLVMMetadataRef;
981
982 pub fn LLVMDIBuilderCreateParameterVariable(
984 Builder: LLVMDIBuilderRef,
985 Scope: LLVMMetadataRef,
986 Name: *const ::libc::c_char,
987 NameLen: ::libc::size_t,
988 ArgNo: ::libc::c_uint,
989 File: LLVMMetadataRef,
990 LineNo: ::libc::c_uint,
991 Ty: LLVMMetadataRef,
992 AlwaysPreserve: LLVMBool,
993 Flags: LLVMDIFlags,
994 ) -> LLVMMetadataRef;
995
996 pub fn LLVMGetSubprogram(Func: LLVMValueRef) -> LLVMMetadataRef;
998
999 pub fn LLVMSetSubprogram(Func: LLVMValueRef, SP: LLVMMetadataRef);
1001
1002 pub fn LLVMDISubprogramGetLine(Subprogram: LLVMMetadataRef) -> ::libc::c_uint;
1004
1005 pub fn LLVMInstructionGetDebugLoc(Inst: LLVMValueRef) -> LLVMMetadataRef;
1007
1008 pub fn LLVMInstructionSetDebugLoc(Inst: LLVMValueRef, Loc: LLVMMetadataRef);
1010
1011 pub fn LLVMDIBuilderCreateLabel(
1013 Builder: LLVMDIBuilderRef,
1014 Context: LLVMMetadataRef,
1015 Name: *const ::libc::c_char,
1016 NameLen: ::libc::size_t,
1017 File: LLVMMetadataRef,
1018 LineNo: ::libc::size_t,
1019 AlwaysPreserve: LLVMBool,
1020 ) -> LLVMMetadataRef;
1021
1022 pub fn LLVMDIBuilderInsertLabelBefore(
1024 Builder: LLVMDIBuilderRef,
1025 LabelInfo: LLVMMetadataRef,
1026 Location: LLVMMetadataRef,
1027 InsertBefore: LLVMValueRef,
1028 ) -> LLVMDbgRecordRef;
1029
1030 pub fn LLVMDIBuilderInsertLabelAtEnd(
1032 Builder: LLVMDIBuilderRef,
1033 LabelInfo: LLVMMetadataRef,
1034 Location: LLVMMetadataRef,
1035 InsertAtEnd: LLVMBasicBlockRef,
1036 );
1037
1038 pub fn LLVMGetMetadataKind(Metadata: LLVMMetadataRef) -> LLVMMetadataKind;
1040}