@@ -318,17 +318,19 @@ extern "C" void LLVMRustAppendModuleInlineAsm(LLVMModuleRef M, const char *Asm)
318
318
319
319
typedef DIBuilder *LLVMRustDIBuilderRef;
320
320
321
- typedef struct LLVMOpaqueMetadata *LLVMRustMetadataRef;
321
+ #if LLVM_VERSION_LT(5, 0)
322
+ typedef struct LLVMOpaqueMetadata *LLVMMetadataRef;
322
323
323
324
namespace llvm {
324
- DEFINE_ISA_CONVERSION_FUNCTIONS (Metadata, LLVMRustMetadataRef )
325
+ DEFINE_ISA_CONVERSION_FUNCTIONS (Metadata, LLVMMetadataRef )
325
326
326
- inline Metadata **unwrap (LLVMRustMetadataRef *Vals) {
327
+ inline Metadata **unwrap (LLVMMetadataRef *Vals) {
327
328
return reinterpret_cast <Metadata **>(Vals);
328
329
}
329
330
}
331
+ #endif
330
332
331
- template <typename DIT> DIT *unwrapDIPtr (LLVMRustMetadataRef Ref) {
333
+ template <typename DIT> DIT *unwrapDIPtr (LLVMMetadataRef Ref) {
332
334
return (DIT *)(Ref ? unwrap<MDNode>(Ref) : nullptr );
333
335
}
334
336
@@ -466,7 +468,7 @@ extern "C" void LLVMRustAddModuleFlag(LLVMModuleRef M, const char *Name,
466
468
unwrap (M)->addModuleFlag (Module::Warning, Name, Value);
467
469
}
468
470
469
- extern " C" void LLVMRustMetadataAsValue (LLVMContextRef C, LLVMRustMetadataRef MD) {
471
+ extern " C" void LLVMRustMetadataAsValue (LLVMContextRef C, LLVMMetadataRef MD) {
470
472
wrap (MetadataAsValue::get (*unwrap (C), unwrap (MD)));
471
473
}
472
474
@@ -482,8 +484,8 @@ extern "C" void LLVMRustDIBuilderFinalize(LLVMRustDIBuilderRef Builder) {
482
484
Builder->finalize ();
483
485
}
484
486
485
- extern " C" LLVMRustMetadataRef LLVMRustDIBuilderCreateCompileUnit (
486
- LLVMRustDIBuilderRef Builder, unsigned Lang, LLVMRustMetadataRef FileRef,
487
+ extern " C" LLVMMetadataRef LLVMRustDIBuilderCreateCompileUnit (
488
+ LLVMRustDIBuilderRef Builder, unsigned Lang, LLVMMetadataRef FileRef,
487
489
const char *Producer, bool isOptimized, const char *Flags,
488
490
unsigned RuntimeVer, const char *SplitName) {
489
491
auto *File = unwrapDI<DIFile>(FileRef);
@@ -498,29 +500,29 @@ extern "C" LLVMRustMetadataRef LLVMRustDIBuilderCreateCompileUnit(
498
500
#endif
499
501
}
500
502
501
- extern " C" LLVMRustMetadataRef
503
+ extern " C" LLVMMetadataRef
502
504
LLVMRustDIBuilderCreateFile (LLVMRustDIBuilderRef Builder, const char *Filename,
503
505
const char *Directory) {
504
506
return wrap (Builder->createFile (Filename, Directory));
505
507
}
506
508
507
- extern " C" LLVMRustMetadataRef
509
+ extern " C" LLVMMetadataRef
508
510
LLVMRustDIBuilderCreateSubroutineType (LLVMRustDIBuilderRef Builder,
509
- LLVMRustMetadataRef File,
510
- LLVMRustMetadataRef ParameterTypes) {
511
+ LLVMMetadataRef File,
512
+ LLVMMetadataRef ParameterTypes) {
511
513
return wrap (Builder->createSubroutineType (
512
514
#if LLVM_VERSION_EQ(3, 7)
513
515
unwrapDI<DIFile>(File),
514
516
#endif
515
517
DITypeRefArray (unwrap<MDTuple>(ParameterTypes))));
516
518
}
517
519
518
- extern " C" LLVMRustMetadataRef LLVMRustDIBuilderCreateFunction (
519
- LLVMRustDIBuilderRef Builder, LLVMRustMetadataRef Scope, const char *Name,
520
- const char *LinkageName, LLVMRustMetadataRef File, unsigned LineNo,
521
- LLVMRustMetadataRef Ty, bool IsLocalToUnit, bool IsDefinition,
520
+ extern " C" LLVMMetadataRef LLVMRustDIBuilderCreateFunction (
521
+ LLVMRustDIBuilderRef Builder, LLVMMetadataRef Scope, const char *Name,
522
+ const char *LinkageName, LLVMMetadataRef File, unsigned LineNo,
523
+ LLVMMetadataRef Ty, bool IsLocalToUnit, bool IsDefinition,
522
524
unsigned ScopeLine, LLVMRustDIFlags Flags, bool IsOptimized,
523
- LLVMValueRef Fn, LLVMRustMetadataRef TParam, LLVMRustMetadataRef Decl) {
525
+ LLVMValueRef Fn, LLVMMetadataRef TParam, LLVMMetadataRef Decl) {
524
526
#if LLVM_VERSION_GE(3, 8)
525
527
DITemplateParameterArray TParams =
526
528
DITemplateParameterArray (unwrap<MDTuple>(TParam));
@@ -540,7 +542,7 @@ extern "C" LLVMRustMetadataRef LLVMRustDIBuilderCreateFunction(
540
542
#endif
541
543
}
542
544
543
- extern " C" LLVMRustMetadataRef
545
+ extern " C" LLVMMetadataRef
544
546
LLVMRustDIBuilderCreateBasicType (LLVMRustDIBuilderRef Builder, const char *Name,
545
547
uint64_t SizeInBits, uint32_t AlignInBits,
546
548
unsigned Encoding) {
@@ -551,19 +553,19 @@ LLVMRustDIBuilderCreateBasicType(LLVMRustDIBuilderRef Builder, const char *Name,
551
553
Encoding));
552
554
}
553
555
554
- extern " C" LLVMRustMetadataRef LLVMRustDIBuilderCreatePointerType (
555
- LLVMRustDIBuilderRef Builder, LLVMRustMetadataRef PointeeTy,
556
+ extern " C" LLVMMetadataRef LLVMRustDIBuilderCreatePointerType (
557
+ LLVMRustDIBuilderRef Builder, LLVMMetadataRef PointeeTy,
556
558
uint64_t SizeInBits, uint32_t AlignInBits, const char *Name) {
557
559
return wrap (Builder->createPointerType (unwrapDI<DIType>(PointeeTy),
558
560
SizeInBits, AlignInBits, Name));
559
561
}
560
562
561
- extern " C" LLVMRustMetadataRef LLVMRustDIBuilderCreateStructType (
562
- LLVMRustDIBuilderRef Builder, LLVMRustMetadataRef Scope, const char *Name,
563
- LLVMRustMetadataRef File, unsigned LineNumber, uint64_t SizeInBits,
563
+ extern " C" LLVMMetadataRef LLVMRustDIBuilderCreateStructType (
564
+ LLVMRustDIBuilderRef Builder, LLVMMetadataRef Scope, const char *Name,
565
+ LLVMMetadataRef File, unsigned LineNumber, uint64_t SizeInBits,
564
566
uint32_t AlignInBits, LLVMRustDIFlags Flags,
565
- LLVMRustMetadataRef DerivedFrom, LLVMRustMetadataRef Elements,
566
- unsigned RunTimeLang, LLVMRustMetadataRef VTableHolder,
567
+ LLVMMetadataRef DerivedFrom, LLVMMetadataRef Elements,
568
+ unsigned RunTimeLang, LLVMMetadataRef VTableHolder,
567
569
const char *UniqueId) {
568
570
return wrap (Builder->createStructType (
569
571
unwrapDI<DIDescriptor>(Scope), Name, unwrapDI<DIFile>(File), LineNumber,
@@ -572,37 +574,37 @@ extern "C" LLVMRustMetadataRef LLVMRustDIBuilderCreateStructType(
572
574
unwrapDI<DIType>(VTableHolder), UniqueId));
573
575
}
574
576
575
- extern " C" LLVMRustMetadataRef LLVMRustDIBuilderCreateMemberType (
576
- LLVMRustDIBuilderRef Builder, LLVMRustMetadataRef Scope, const char *Name,
577
- LLVMRustMetadataRef File, unsigned LineNo, uint64_t SizeInBits,
577
+ extern " C" LLVMMetadataRef LLVMRustDIBuilderCreateMemberType (
578
+ LLVMRustDIBuilderRef Builder, LLVMMetadataRef Scope, const char *Name,
579
+ LLVMMetadataRef File, unsigned LineNo, uint64_t SizeInBits,
578
580
uint32_t AlignInBits, uint64_t OffsetInBits, LLVMRustDIFlags Flags,
579
- LLVMRustMetadataRef Ty) {
581
+ LLVMMetadataRef Ty) {
580
582
return wrap (Builder->createMemberType (unwrapDI<DIDescriptor>(Scope), Name,
581
583
unwrapDI<DIFile>(File), LineNo,
582
584
SizeInBits, AlignInBits, OffsetInBits,
583
585
fromRust (Flags), unwrapDI<DIType>(Ty)));
584
586
}
585
587
586
- extern " C" LLVMRustMetadataRef LLVMRustDIBuilderCreateLexicalBlock (
587
- LLVMRustDIBuilderRef Builder, LLVMRustMetadataRef Scope,
588
- LLVMRustMetadataRef File, unsigned Line, unsigned Col) {
588
+ extern " C" LLVMMetadataRef LLVMRustDIBuilderCreateLexicalBlock (
589
+ LLVMRustDIBuilderRef Builder, LLVMMetadataRef Scope,
590
+ LLVMMetadataRef File, unsigned Line, unsigned Col) {
589
591
return wrap (Builder->createLexicalBlock (unwrapDI<DIDescriptor>(Scope),
590
592
unwrapDI<DIFile>(File), Line, Col));
591
593
}
592
594
593
- extern " C" LLVMRustMetadataRef
595
+ extern " C" LLVMMetadataRef
594
596
LLVMRustDIBuilderCreateLexicalBlockFile (LLVMRustDIBuilderRef Builder,
595
- LLVMRustMetadataRef Scope,
596
- LLVMRustMetadataRef File) {
597
+ LLVMMetadataRef Scope,
598
+ LLVMMetadataRef File) {
597
599
return wrap (Builder->createLexicalBlockFile (unwrapDI<DIDescriptor>(Scope),
598
600
unwrapDI<DIFile>(File)));
599
601
}
600
602
601
- extern " C" LLVMRustMetadataRef LLVMRustDIBuilderCreateStaticVariable (
602
- LLVMRustDIBuilderRef Builder, LLVMRustMetadataRef Context, const char *Name,
603
- const char *LinkageName, LLVMRustMetadataRef File, unsigned LineNo,
604
- LLVMRustMetadataRef Ty, bool IsLocalToUnit, LLVMValueRef V,
605
- LLVMRustMetadataRef Decl = nullptr , uint32_t AlignInBits = 0 ) {
603
+ extern " C" LLVMMetadataRef LLVMRustDIBuilderCreateStaticVariable (
604
+ LLVMRustDIBuilderRef Builder, LLVMMetadataRef Context, const char *Name,
605
+ const char *LinkageName, LLVMMetadataRef File, unsigned LineNo,
606
+ LLVMMetadataRef Ty, bool IsLocalToUnit, LLVMValueRef V,
607
+ LLVMMetadataRef Decl = nullptr , uint32_t AlignInBits = 0 ) {
606
608
llvm::GlobalVariable *InitVal = cast<llvm::GlobalVariable>(unwrap (V));
607
609
608
610
#if LLVM_VERSION_GE(4, 0)
@@ -632,10 +634,10 @@ extern "C" LLVMRustMetadataRef LLVMRustDIBuilderCreateStaticVariable(
632
634
#endif
633
635
}
634
636
635
- extern " C" LLVMRustMetadataRef LLVMRustDIBuilderCreateVariable (
636
- LLVMRustDIBuilderRef Builder, unsigned Tag, LLVMRustMetadataRef Scope,
637
- const char *Name, LLVMRustMetadataRef File, unsigned LineNo,
638
- LLVMRustMetadataRef Ty, bool AlwaysPreserve, LLVMRustDIFlags Flags,
637
+ extern " C" LLVMMetadataRef LLVMRustDIBuilderCreateVariable (
638
+ LLVMRustDIBuilderRef Builder, unsigned Tag, LLVMMetadataRef Scope,
639
+ const char *Name, LLVMMetadataRef File, unsigned LineNo,
640
+ LLVMMetadataRef Ty, bool AlwaysPreserve, LLVMRustDIFlags Flags,
639
641
unsigned ArgNo, uint32_t AlignInBits) {
640
642
#if LLVM_VERSION_GE(3, 8)
641
643
if (Tag == 0x100 ) { // DW_TAG_auto_variable
@@ -659,40 +661,40 @@ extern "C" LLVMRustMetadataRef LLVMRustDIBuilderCreateVariable(
659
661
#endif
660
662
}
661
663
662
- extern " C" LLVMRustMetadataRef
664
+ extern " C" LLVMMetadataRef
663
665
LLVMRustDIBuilderCreateArrayType (LLVMRustDIBuilderRef Builder, uint64_t Size,
664
- uint32_t AlignInBits, LLVMRustMetadataRef Ty,
665
- LLVMRustMetadataRef Subscripts) {
666
+ uint32_t AlignInBits, LLVMMetadataRef Ty,
667
+ LLVMMetadataRef Subscripts) {
666
668
return wrap (
667
669
Builder->createArrayType (Size, AlignInBits, unwrapDI<DIType>(Ty),
668
670
DINodeArray (unwrapDI<MDTuple>(Subscripts))));
669
671
}
670
672
671
- extern " C" LLVMRustMetadataRef
673
+ extern " C" LLVMMetadataRef
672
674
LLVMRustDIBuilderCreateVectorType (LLVMRustDIBuilderRef Builder, uint64_t Size,
673
- uint32_t AlignInBits, LLVMRustMetadataRef Ty,
674
- LLVMRustMetadataRef Subscripts) {
675
+ uint32_t AlignInBits, LLVMMetadataRef Ty,
676
+ LLVMMetadataRef Subscripts) {
675
677
return wrap (
676
678
Builder->createVectorType (Size, AlignInBits, unwrapDI<DIType>(Ty),
677
679
DINodeArray (unwrapDI<MDTuple>(Subscripts))));
678
680
}
679
681
680
- extern " C" LLVMRustMetadataRef
682
+ extern " C" LLVMMetadataRef
681
683
LLVMRustDIBuilderGetOrCreateSubrange (LLVMRustDIBuilderRef Builder, int64_t Lo,
682
684
int64_t Count) {
683
685
return wrap (Builder->getOrCreateSubrange (Lo, Count));
684
686
}
685
687
686
- extern " C" LLVMRustMetadataRef
688
+ extern " C" LLVMMetadataRef
687
689
LLVMRustDIBuilderGetOrCreateArray (LLVMRustDIBuilderRef Builder,
688
- LLVMRustMetadataRef *Ptr, unsigned Count) {
690
+ LLVMMetadataRef *Ptr, unsigned Count) {
689
691
Metadata **DataValue = unwrap (Ptr);
690
692
return wrap (
691
693
Builder->getOrCreateArray (ArrayRef<Metadata *>(DataValue, Count)).get ());
692
694
}
693
695
694
696
extern " C" LLVMValueRef LLVMRustDIBuilderInsertDeclareAtEnd (
695
- LLVMRustDIBuilderRef Builder, LLVMValueRef V, LLVMRustMetadataRef VarInfo,
697
+ LLVMRustDIBuilderRef Builder, LLVMValueRef V, LLVMMetadataRef VarInfo,
696
698
int64_t *AddrOps, unsigned AddrOpsCount, LLVMValueRef DL,
697
699
LLVMBasicBlockRef InsertAtEnd) {
698
700
return wrap (Builder->insertDeclare (
@@ -702,46 +704,46 @@ extern "C" LLVMValueRef LLVMRustDIBuilderInsertDeclareAtEnd(
702
704
unwrap (InsertAtEnd)));
703
705
}
704
706
705
- extern " C" LLVMRustMetadataRef
707
+ extern " C" LLVMMetadataRef
706
708
LLVMRustDIBuilderCreateEnumerator (LLVMRustDIBuilderRef Builder,
707
709
const char *Name, uint64_t Val) {
708
710
return wrap (Builder->createEnumerator (Name, Val));
709
711
}
710
712
711
- extern " C" LLVMRustMetadataRef LLVMRustDIBuilderCreateEnumerationType (
712
- LLVMRustDIBuilderRef Builder, LLVMRustMetadataRef Scope, const char *Name,
713
- LLVMRustMetadataRef File, unsigned LineNumber, uint64_t SizeInBits,
714
- uint32_t AlignInBits, LLVMRustMetadataRef Elements,
715
- LLVMRustMetadataRef ClassTy) {
713
+ extern " C" LLVMMetadataRef LLVMRustDIBuilderCreateEnumerationType (
714
+ LLVMRustDIBuilderRef Builder, LLVMMetadataRef Scope, const char *Name,
715
+ LLVMMetadataRef File, unsigned LineNumber, uint64_t SizeInBits,
716
+ uint32_t AlignInBits, LLVMMetadataRef Elements,
717
+ LLVMMetadataRef ClassTy) {
716
718
return wrap (Builder->createEnumerationType (
717
719
unwrapDI<DIDescriptor>(Scope), Name, unwrapDI<DIFile>(File), LineNumber,
718
720
SizeInBits, AlignInBits, DINodeArray (unwrapDI<MDTuple>(Elements)),
719
721
unwrapDI<DIType>(ClassTy)));
720
722
}
721
723
722
- extern " C" LLVMRustMetadataRef LLVMRustDIBuilderCreateUnionType (
723
- LLVMRustDIBuilderRef Builder, LLVMRustMetadataRef Scope, const char *Name,
724
- LLVMRustMetadataRef File, unsigned LineNumber, uint64_t SizeInBits,
725
- uint32_t AlignInBits, LLVMRustDIFlags Flags, LLVMRustMetadataRef Elements,
724
+ extern " C" LLVMMetadataRef LLVMRustDIBuilderCreateUnionType (
725
+ LLVMRustDIBuilderRef Builder, LLVMMetadataRef Scope, const char *Name,
726
+ LLVMMetadataRef File, unsigned LineNumber, uint64_t SizeInBits,
727
+ uint32_t AlignInBits, LLVMRustDIFlags Flags, LLVMMetadataRef Elements,
726
728
unsigned RunTimeLang, const char *UniqueId) {
727
729
return wrap (Builder->createUnionType (
728
730
unwrapDI<DIDescriptor>(Scope), Name, unwrapDI<DIFile>(File), LineNumber,
729
731
SizeInBits, AlignInBits, fromRust (Flags),
730
732
DINodeArray (unwrapDI<MDTuple>(Elements)), RunTimeLang, UniqueId));
731
733
}
732
734
733
- extern " C" LLVMRustMetadataRef LLVMRustDIBuilderCreateTemplateTypeParameter (
734
- LLVMRustDIBuilderRef Builder, LLVMRustMetadataRef Scope, const char *Name,
735
- LLVMRustMetadataRef Ty, LLVMRustMetadataRef File, unsigned LineNo,
735
+ extern " C" LLVMMetadataRef LLVMRustDIBuilderCreateTemplateTypeParameter (
736
+ LLVMRustDIBuilderRef Builder, LLVMMetadataRef Scope, const char *Name,
737
+ LLVMMetadataRef Ty, LLVMMetadataRef File, unsigned LineNo,
736
738
unsigned ColumnNo) {
737
739
return wrap (Builder->createTemplateTypeParameter (
738
740
unwrapDI<DIDescriptor>(Scope), Name, unwrapDI<DIType>(Ty)));
739
741
}
740
742
741
- extern " C" LLVMRustMetadataRef
743
+ extern " C" LLVMMetadataRef
742
744
LLVMRustDIBuilderCreateNameSpace (LLVMRustDIBuilderRef Builder,
743
- LLVMRustMetadataRef Scope, const char *Name,
744
- LLVMRustMetadataRef File, unsigned LineNo) {
745
+ LLVMMetadataRef Scope, const char *Name,
746
+ LLVMMetadataRef File, unsigned LineNo) {
745
747
return wrap (Builder->createNameSpace (
746
748
unwrapDI<DIDescriptor>(Scope), Name, unwrapDI<DIFile>(File), LineNo
747
749
#if LLVM_VERSION_GE(4, 0)
@@ -753,16 +755,16 @@ LLVMRustDIBuilderCreateNameSpace(LLVMRustDIBuilderRef Builder,
753
755
754
756
extern " C" void
755
757
LLVMRustDICompositeTypeSetTypeArray (LLVMRustDIBuilderRef Builder,
756
- LLVMRustMetadataRef CompositeTy,
757
- LLVMRustMetadataRef TyArray) {
758
+ LLVMMetadataRef CompositeTy,
759
+ LLVMMetadataRef TyArray) {
758
760
DICompositeType *Tmp = unwrapDI<DICompositeType>(CompositeTy);
759
761
Builder->replaceArrays (Tmp, DINodeArray (unwrap<MDTuple>(TyArray)));
760
762
}
761
763
762
764
extern " C" LLVMValueRef
763
765
LLVMRustDIBuilderCreateDebugLocation (LLVMContextRef ContextRef, unsigned Line,
764
- unsigned Column, LLVMRustMetadataRef Scope,
765
- LLVMRustMetadataRef InlinedAt) {
766
+ unsigned Column, LLVMMetadataRef Scope,
767
+ LLVMMetadataRef InlinedAt) {
766
768
LLVMContext &Context = *unwrap (ContextRef);
767
769
768
770
DebugLoc debug_loc = DebugLoc::get (Line, Column, unwrapDIPtr<MDNode>(Scope),
0 commit comments