Skip to content

Commit 2c9c8dc

Browse files
committed
rustllvm: use LLVMMetadataRef
1 parent c978729 commit 2c9c8dc

File tree

1 file changed

+75
-73
lines changed

1 file changed

+75
-73
lines changed

src/rustllvm/RustWrapper.cpp

Lines changed: 75 additions & 73 deletions
Original file line numberDiff line numberDiff line change
@@ -318,17 +318,19 @@ extern "C" void LLVMRustAppendModuleInlineAsm(LLVMModuleRef M, const char *Asm)
318318

319319
typedef DIBuilder *LLVMRustDIBuilderRef;
320320

321-
typedef struct LLVMOpaqueMetadata *LLVMRustMetadataRef;
321+
#if LLVM_VERSION_LT(5, 0)
322+
typedef struct LLVMOpaqueMetadata *LLVMMetadataRef;
322323

323324
namespace llvm {
324-
DEFINE_ISA_CONVERSION_FUNCTIONS(Metadata, LLVMRustMetadataRef)
325+
DEFINE_ISA_CONVERSION_FUNCTIONS(Metadata, LLVMMetadataRef)
325326

326-
inline Metadata **unwrap(LLVMRustMetadataRef *Vals) {
327+
inline Metadata **unwrap(LLVMMetadataRef *Vals) {
327328
return reinterpret_cast<Metadata **>(Vals);
328329
}
329330
}
331+
#endif
330332

331-
template <typename DIT> DIT *unwrapDIPtr(LLVMRustMetadataRef Ref) {
333+
template <typename DIT> DIT *unwrapDIPtr(LLVMMetadataRef Ref) {
332334
return (DIT *)(Ref ? unwrap<MDNode>(Ref) : nullptr);
333335
}
334336

@@ -466,7 +468,7 @@ extern "C" void LLVMRustAddModuleFlag(LLVMModuleRef M, const char *Name,
466468
unwrap(M)->addModuleFlag(Module::Warning, Name, Value);
467469
}
468470

469-
extern "C" void LLVMRustMetadataAsValue(LLVMContextRef C, LLVMRustMetadataRef MD) {
471+
extern "C" void LLVMRustMetadataAsValue(LLVMContextRef C, LLVMMetadataRef MD) {
470472
wrap(MetadataAsValue::get(*unwrap(C), unwrap(MD)));
471473
}
472474

@@ -482,8 +484,8 @@ extern "C" void LLVMRustDIBuilderFinalize(LLVMRustDIBuilderRef Builder) {
482484
Builder->finalize();
483485
}
484486

485-
extern "C" LLVMRustMetadataRef LLVMRustDIBuilderCreateCompileUnit(
486-
LLVMRustDIBuilderRef Builder, unsigned Lang, LLVMRustMetadataRef FileRef,
487+
extern "C" LLVMMetadataRef LLVMRustDIBuilderCreateCompileUnit(
488+
LLVMRustDIBuilderRef Builder, unsigned Lang, LLVMMetadataRef FileRef,
487489
const char *Producer, bool isOptimized, const char *Flags,
488490
unsigned RuntimeVer, const char *SplitName) {
489491
auto *File = unwrapDI<DIFile>(FileRef);
@@ -498,29 +500,29 @@ extern "C" LLVMRustMetadataRef LLVMRustDIBuilderCreateCompileUnit(
498500
#endif
499501
}
500502

501-
extern "C" LLVMRustMetadataRef
503+
extern "C" LLVMMetadataRef
502504
LLVMRustDIBuilderCreateFile(LLVMRustDIBuilderRef Builder, const char *Filename,
503505
const char *Directory) {
504506
return wrap(Builder->createFile(Filename, Directory));
505507
}
506508

507-
extern "C" LLVMRustMetadataRef
509+
extern "C" LLVMMetadataRef
508510
LLVMRustDIBuilderCreateSubroutineType(LLVMRustDIBuilderRef Builder,
509-
LLVMRustMetadataRef File,
510-
LLVMRustMetadataRef ParameterTypes) {
511+
LLVMMetadataRef File,
512+
LLVMMetadataRef ParameterTypes) {
511513
return wrap(Builder->createSubroutineType(
512514
#if LLVM_VERSION_EQ(3, 7)
513515
unwrapDI<DIFile>(File),
514516
#endif
515517
DITypeRefArray(unwrap<MDTuple>(ParameterTypes))));
516518
}
517519

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,
522524
unsigned ScopeLine, LLVMRustDIFlags Flags, bool IsOptimized,
523-
LLVMValueRef Fn, LLVMRustMetadataRef TParam, LLVMRustMetadataRef Decl) {
525+
LLVMValueRef Fn, LLVMMetadataRef TParam, LLVMMetadataRef Decl) {
524526
#if LLVM_VERSION_GE(3, 8)
525527
DITemplateParameterArray TParams =
526528
DITemplateParameterArray(unwrap<MDTuple>(TParam));
@@ -540,7 +542,7 @@ extern "C" LLVMRustMetadataRef LLVMRustDIBuilderCreateFunction(
540542
#endif
541543
}
542544

543-
extern "C" LLVMRustMetadataRef
545+
extern "C" LLVMMetadataRef
544546
LLVMRustDIBuilderCreateBasicType(LLVMRustDIBuilderRef Builder, const char *Name,
545547
uint64_t SizeInBits, uint32_t AlignInBits,
546548
unsigned Encoding) {
@@ -551,19 +553,19 @@ LLVMRustDIBuilderCreateBasicType(LLVMRustDIBuilderRef Builder, const char *Name,
551553
Encoding));
552554
}
553555

554-
extern "C" LLVMRustMetadataRef LLVMRustDIBuilderCreatePointerType(
555-
LLVMRustDIBuilderRef Builder, LLVMRustMetadataRef PointeeTy,
556+
extern "C" LLVMMetadataRef LLVMRustDIBuilderCreatePointerType(
557+
LLVMRustDIBuilderRef Builder, LLVMMetadataRef PointeeTy,
556558
uint64_t SizeInBits, uint32_t AlignInBits, const char *Name) {
557559
return wrap(Builder->createPointerType(unwrapDI<DIType>(PointeeTy),
558560
SizeInBits, AlignInBits, Name));
559561
}
560562

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,
564566
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,
567569
const char *UniqueId) {
568570
return wrap(Builder->createStructType(
569571
unwrapDI<DIDescriptor>(Scope), Name, unwrapDI<DIFile>(File), LineNumber,
@@ -572,37 +574,37 @@ extern "C" LLVMRustMetadataRef LLVMRustDIBuilderCreateStructType(
572574
unwrapDI<DIType>(VTableHolder), UniqueId));
573575
}
574576

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,
578580
uint32_t AlignInBits, uint64_t OffsetInBits, LLVMRustDIFlags Flags,
579-
LLVMRustMetadataRef Ty) {
581+
LLVMMetadataRef Ty) {
580582
return wrap(Builder->createMemberType(unwrapDI<DIDescriptor>(Scope), Name,
581583
unwrapDI<DIFile>(File), LineNo,
582584
SizeInBits, AlignInBits, OffsetInBits,
583585
fromRust(Flags), unwrapDI<DIType>(Ty)));
584586
}
585587

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) {
589591
return wrap(Builder->createLexicalBlock(unwrapDI<DIDescriptor>(Scope),
590592
unwrapDI<DIFile>(File), Line, Col));
591593
}
592594

593-
extern "C" LLVMRustMetadataRef
595+
extern "C" LLVMMetadataRef
594596
LLVMRustDIBuilderCreateLexicalBlockFile(LLVMRustDIBuilderRef Builder,
595-
LLVMRustMetadataRef Scope,
596-
LLVMRustMetadataRef File) {
597+
LLVMMetadataRef Scope,
598+
LLVMMetadataRef File) {
597599
return wrap(Builder->createLexicalBlockFile(unwrapDI<DIDescriptor>(Scope),
598600
unwrapDI<DIFile>(File)));
599601
}
600602

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) {
606608
llvm::GlobalVariable *InitVal = cast<llvm::GlobalVariable>(unwrap(V));
607609

608610
#if LLVM_VERSION_GE(4, 0)
@@ -632,10 +634,10 @@ extern "C" LLVMRustMetadataRef LLVMRustDIBuilderCreateStaticVariable(
632634
#endif
633635
}
634636

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,
639641
unsigned ArgNo, uint32_t AlignInBits) {
640642
#if LLVM_VERSION_GE(3, 8)
641643
if (Tag == 0x100) { // DW_TAG_auto_variable
@@ -659,40 +661,40 @@ extern "C" LLVMRustMetadataRef LLVMRustDIBuilderCreateVariable(
659661
#endif
660662
}
661663

662-
extern "C" LLVMRustMetadataRef
664+
extern "C" LLVMMetadataRef
663665
LLVMRustDIBuilderCreateArrayType(LLVMRustDIBuilderRef Builder, uint64_t Size,
664-
uint32_t AlignInBits, LLVMRustMetadataRef Ty,
665-
LLVMRustMetadataRef Subscripts) {
666+
uint32_t AlignInBits, LLVMMetadataRef Ty,
667+
LLVMMetadataRef Subscripts) {
666668
return wrap(
667669
Builder->createArrayType(Size, AlignInBits, unwrapDI<DIType>(Ty),
668670
DINodeArray(unwrapDI<MDTuple>(Subscripts))));
669671
}
670672

671-
extern "C" LLVMRustMetadataRef
673+
extern "C" LLVMMetadataRef
672674
LLVMRustDIBuilderCreateVectorType(LLVMRustDIBuilderRef Builder, uint64_t Size,
673-
uint32_t AlignInBits, LLVMRustMetadataRef Ty,
674-
LLVMRustMetadataRef Subscripts) {
675+
uint32_t AlignInBits, LLVMMetadataRef Ty,
676+
LLVMMetadataRef Subscripts) {
675677
return wrap(
676678
Builder->createVectorType(Size, AlignInBits, unwrapDI<DIType>(Ty),
677679
DINodeArray(unwrapDI<MDTuple>(Subscripts))));
678680
}
679681

680-
extern "C" LLVMRustMetadataRef
682+
extern "C" LLVMMetadataRef
681683
LLVMRustDIBuilderGetOrCreateSubrange(LLVMRustDIBuilderRef Builder, int64_t Lo,
682684
int64_t Count) {
683685
return wrap(Builder->getOrCreateSubrange(Lo, Count));
684686
}
685687

686-
extern "C" LLVMRustMetadataRef
688+
extern "C" LLVMMetadataRef
687689
LLVMRustDIBuilderGetOrCreateArray(LLVMRustDIBuilderRef Builder,
688-
LLVMRustMetadataRef *Ptr, unsigned Count) {
690+
LLVMMetadataRef *Ptr, unsigned Count) {
689691
Metadata **DataValue = unwrap(Ptr);
690692
return wrap(
691693
Builder->getOrCreateArray(ArrayRef<Metadata *>(DataValue, Count)).get());
692694
}
693695

694696
extern "C" LLVMValueRef LLVMRustDIBuilderInsertDeclareAtEnd(
695-
LLVMRustDIBuilderRef Builder, LLVMValueRef V, LLVMRustMetadataRef VarInfo,
697+
LLVMRustDIBuilderRef Builder, LLVMValueRef V, LLVMMetadataRef VarInfo,
696698
int64_t *AddrOps, unsigned AddrOpsCount, LLVMValueRef DL,
697699
LLVMBasicBlockRef InsertAtEnd) {
698700
return wrap(Builder->insertDeclare(
@@ -702,46 +704,46 @@ extern "C" LLVMValueRef LLVMRustDIBuilderInsertDeclareAtEnd(
702704
unwrap(InsertAtEnd)));
703705
}
704706

705-
extern "C" LLVMRustMetadataRef
707+
extern "C" LLVMMetadataRef
706708
LLVMRustDIBuilderCreateEnumerator(LLVMRustDIBuilderRef Builder,
707709
const char *Name, uint64_t Val) {
708710
return wrap(Builder->createEnumerator(Name, Val));
709711
}
710712

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) {
716718
return wrap(Builder->createEnumerationType(
717719
unwrapDI<DIDescriptor>(Scope), Name, unwrapDI<DIFile>(File), LineNumber,
718720
SizeInBits, AlignInBits, DINodeArray(unwrapDI<MDTuple>(Elements)),
719721
unwrapDI<DIType>(ClassTy)));
720722
}
721723

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,
726728
unsigned RunTimeLang, const char *UniqueId) {
727729
return wrap(Builder->createUnionType(
728730
unwrapDI<DIDescriptor>(Scope), Name, unwrapDI<DIFile>(File), LineNumber,
729731
SizeInBits, AlignInBits, fromRust(Flags),
730732
DINodeArray(unwrapDI<MDTuple>(Elements)), RunTimeLang, UniqueId));
731733
}
732734

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,
736738
unsigned ColumnNo) {
737739
return wrap(Builder->createTemplateTypeParameter(
738740
unwrapDI<DIDescriptor>(Scope), Name, unwrapDI<DIType>(Ty)));
739741
}
740742

741-
extern "C" LLVMRustMetadataRef
743+
extern "C" LLVMMetadataRef
742744
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) {
745747
return wrap(Builder->createNameSpace(
746748
unwrapDI<DIDescriptor>(Scope), Name, unwrapDI<DIFile>(File), LineNo
747749
#if LLVM_VERSION_GE(4, 0)
@@ -753,16 +755,16 @@ LLVMRustDIBuilderCreateNameSpace(LLVMRustDIBuilderRef Builder,
753755

754756
extern "C" void
755757
LLVMRustDICompositeTypeSetTypeArray(LLVMRustDIBuilderRef Builder,
756-
LLVMRustMetadataRef CompositeTy,
757-
LLVMRustMetadataRef TyArray) {
758+
LLVMMetadataRef CompositeTy,
759+
LLVMMetadataRef TyArray) {
758760
DICompositeType *Tmp = unwrapDI<DICompositeType>(CompositeTy);
759761
Builder->replaceArrays(Tmp, DINodeArray(unwrap<MDTuple>(TyArray)));
760762
}
761763

762764
extern "C" LLVMValueRef
763765
LLVMRustDIBuilderCreateDebugLocation(LLVMContextRef ContextRef, unsigned Line,
764-
unsigned Column, LLVMRustMetadataRef Scope,
765-
LLVMRustMetadataRef InlinedAt) {
766+
unsigned Column, LLVMMetadataRef Scope,
767+
LLVMMetadataRef InlinedAt) {
766768
LLVMContext &Context = *unwrap(ContextRef);
767769

768770
DebugLoc debug_loc = DebugLoc::get(Line, Column, unwrapDIPtr<MDNode>(Scope),

0 commit comments

Comments
 (0)