Skip to content

Commit dc59fdf

Browse files
committed
Properly unwrap LLVMDIBuilderRef in the remaining wrapper functions
1 parent b1c3e11 commit dc59fdf

File tree

1 file changed

+33
-34
lines changed

1 file changed

+33
-34
lines changed

compiler/rustc_llvm/llvm-wrapper/RustWrapper.cpp

Lines changed: 33 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -627,8 +627,6 @@ extern "C" bool LLVMRustInlineAsmVerify(LLVMTypeRef Ty, char *Constraints,
627627
unwrap<FunctionType>(Ty), StringRef(Constraints, ConstraintsLen)));
628628
}
629629

630-
typedef DIBuilder *LLVMRustDIBuilderRef;
631-
632630
template <typename DIT> DIT *unwrapDIPtr(LLVMMetadataRef Ref) {
633631
return (DIT *)(Ref ? unwrap<MDNode>(Ref) : nullptr);
634632
}
@@ -897,21 +895,21 @@ extern "C" void LLVMRustGlobalAddMetadata(LLVMValueRef Global, unsigned Kind,
897895
}
898896

899897
extern "C" LLVMMetadataRef LLVMRustDIBuilderCreateCompileUnit(
900-
LLVMRustDIBuilderRef Builder, unsigned Lang, LLVMMetadataRef FileRef,
898+
LLVMDIBuilderRef Builder, unsigned Lang, LLVMMetadataRef FileRef,
901899
const char *Producer, size_t ProducerLen, bool isOptimized,
902900
const char *Flags, unsigned RuntimeVer, const char *SplitName,
903901
size_t SplitNameLen, LLVMRustDebugEmissionKind Kind, uint64_t DWOId,
904902
bool SplitDebugInlining, LLVMRustDebugNameTableKind TableKind) {
905903
auto *File = unwrapDI<DIFile>(FileRef);
906904

907-
return wrap(Builder->createCompileUnit(
905+
return wrap(unwrap(Builder)->createCompileUnit(
908906
Lang, File, StringRef(Producer, ProducerLen), isOptimized, Flags,
909907
RuntimeVer, StringRef(SplitName, SplitNameLen), fromRust(Kind), DWOId,
910908
SplitDebugInlining, false, fromRust(TableKind)));
911909
}
912910

913911
extern "C" LLVMMetadataRef
914-
LLVMRustDIBuilderCreateFile(LLVMRustDIBuilderRef Builder, const char *Filename,
912+
LLVMRustDIBuilderCreateFile(LLVMDIBuilderRef Builder, const char *Filename,
915913
size_t FilenameLen, const char *Directory,
916914
size_t DirectoryLen, LLVMRustChecksumKind CSKind,
917915
const char *Checksum, size_t ChecksumLen,
@@ -924,13 +922,13 @@ LLVMRustDIBuilderCreateFile(LLVMRustDIBuilderRef Builder, const char *Filename,
924922
std::optional<StringRef> oSource{};
925923
if (Source)
926924
oSource = StringRef(Source, SourceLen);
927-
return wrap(Builder->createFile(StringRef(Filename, FilenameLen),
928-
StringRef(Directory, DirectoryLen), CSInfo,
929-
oSource));
925+
return wrap(unwrap(Builder)->createFile(StringRef(Filename, FilenameLen),
926+
StringRef(Directory, DirectoryLen),
927+
CSInfo, oSource));
930928
}
931929

932930
extern "C" LLVMMetadataRef LLVMRustDIBuilderCreateFunction(
933-
LLVMRustDIBuilderRef Builder, LLVMMetadataRef Scope, const char *Name,
931+
LLVMDIBuilderRef Builder, LLVMMetadataRef Scope, const char *Name,
934932
size_t NameLen, const char *LinkageName, size_t LinkageNameLen,
935933
LLVMMetadataRef File, unsigned LineNo, LLVMMetadataRef Ty,
936934
unsigned ScopeLine, LLVMRustDIFlags Flags, LLVMRustDISPFlags SPFlags,
@@ -939,7 +937,7 @@ extern "C" LLVMMetadataRef LLVMRustDIBuilderCreateFunction(
939937
DITemplateParameterArray(unwrap<MDTuple>(TParam));
940938
DISubprogram::DISPFlags llvmSPFlags = fromRust(SPFlags);
941939
DINode::DIFlags llvmFlags = fromRust(Flags);
942-
DISubprogram *Sub = Builder->createFunction(
940+
DISubprogram *Sub = unwrap(Builder)->createFunction(
943941
unwrapDI<DIScope>(Scope), StringRef(Name, NameLen),
944942
StringRef(LinkageName, LinkageNameLen), unwrapDI<DIFile>(File), LineNo,
945943
unwrapDI<DISubroutineType>(Ty), ScopeLine, llvmFlags, llvmSPFlags,
@@ -950,15 +948,15 @@ extern "C" LLVMMetadataRef LLVMRustDIBuilderCreateFunction(
950948
}
951949

952950
extern "C" LLVMMetadataRef LLVMRustDIBuilderCreateMethod(
953-
LLVMRustDIBuilderRef Builder, LLVMMetadataRef Scope, const char *Name,
951+
LLVMDIBuilderRef Builder, LLVMMetadataRef Scope, const char *Name,
954952
size_t NameLen, const char *LinkageName, size_t LinkageNameLen,
955953
LLVMMetadataRef File, unsigned LineNo, LLVMMetadataRef Ty,
956954
LLVMRustDIFlags Flags, LLVMRustDISPFlags SPFlags, LLVMMetadataRef TParam) {
957955
DITemplateParameterArray TParams =
958956
DITemplateParameterArray(unwrap<MDTuple>(TParam));
959957
DISubprogram::DISPFlags llvmSPFlags = fromRust(SPFlags);
960958
DINode::DIFlags llvmFlags = fromRust(Flags);
961-
DISubprogram *Sub = Builder->createMethod(
959+
DISubprogram *Sub = unwrap(Builder)->createMethod(
962960
unwrapDI<DIScope>(Scope), StringRef(Name, NameLen),
963961
StringRef(LinkageName, LinkageNameLen), unwrapDI<DIFile>(File), LineNo,
964962
unwrapDI<DISubroutineType>(Ty), 0, 0,
@@ -968,12 +966,12 @@ extern "C" LLVMMetadataRef LLVMRustDIBuilderCreateMethod(
968966
}
969967

970968
extern "C" LLVMMetadataRef LLVMRustDIBuilderCreateVariantPart(
971-
LLVMRustDIBuilderRef Builder, LLVMMetadataRef Scope, const char *Name,
969+
LLVMDIBuilderRef Builder, LLVMMetadataRef Scope, const char *Name,
972970
size_t NameLen, LLVMMetadataRef File, unsigned LineNumber,
973971
uint64_t SizeInBits, uint32_t AlignInBits, LLVMRustDIFlags Flags,
974972
LLVMMetadataRef Discriminator, LLVMMetadataRef Elements,
975973
const char *UniqueId, size_t UniqueIdLen) {
976-
return wrap(Builder->createVariantPart(
974+
return wrap(unwrap(Builder)->createVariantPart(
977975
unwrapDI<DIDescriptor>(Scope), StringRef(Name, NameLen),
978976
unwrapDI<DIFile>(File), LineNumber, SizeInBits, AlignInBits,
979977
fromRust(Flags), unwrapDI<DIDerivedType>(Discriminator),
@@ -982,22 +980,22 @@ extern "C" LLVMMetadataRef LLVMRustDIBuilderCreateVariantPart(
982980
}
983981

984982
extern "C" LLVMMetadataRef LLVMRustDIBuilderCreateVariantMemberType(
985-
LLVMRustDIBuilderRef Builder, LLVMMetadataRef Scope, const char *Name,
983+
LLVMDIBuilderRef Builder, LLVMMetadataRef Scope, const char *Name,
986984
size_t NameLen, LLVMMetadataRef File, unsigned LineNo, uint64_t SizeInBits,
987985
uint32_t AlignInBits, uint64_t OffsetInBits, LLVMValueRef Discriminant,
988986
LLVMRustDIFlags Flags, LLVMMetadataRef Ty) {
989987
llvm::ConstantInt *D = nullptr;
990988
if (Discriminant) {
991989
D = unwrap<llvm::ConstantInt>(Discriminant);
992990
}
993-
return wrap(Builder->createVariantMemberType(
991+
return wrap(unwrap(Builder)->createVariantMemberType(
994992
unwrapDI<DIDescriptor>(Scope), StringRef(Name, NameLen),
995993
unwrapDI<DIFile>(File), LineNo, SizeInBits, AlignInBits, OffsetInBits, D,
996994
fromRust(Flags), unwrapDI<DIType>(Ty)));
997995
}
998996

999997
extern "C" LLVMMetadataRef LLVMRustDIBuilderCreateStaticVariable(
1000-
LLVMRustDIBuilderRef Builder, LLVMMetadataRef Context, const char *Name,
998+
LLVMDIBuilderRef Builder, LLVMMetadataRef Context, const char *Name,
1001999
size_t NameLen, const char *LinkageName, size_t LinkageNameLen,
10021000
LLVMMetadataRef File, unsigned LineNo, LLVMMetadataRef Ty,
10031001
bool IsLocalToUnit, LLVMValueRef V, LLVMMetadataRef Decl = nullptr,
@@ -1006,16 +1004,16 @@ extern "C" LLVMMetadataRef LLVMRustDIBuilderCreateStaticVariable(
10061004

10071005
llvm::DIExpression *InitExpr = nullptr;
10081006
if (llvm::ConstantInt *IntVal = llvm::dyn_cast<llvm::ConstantInt>(InitVal)) {
1009-
InitExpr = Builder->createConstantValueExpression(
1007+
InitExpr = unwrap(Builder)->createConstantValueExpression(
10101008
IntVal->getValue().getSExtValue());
10111009
} else if (llvm::ConstantFP *FPVal =
10121010
llvm::dyn_cast<llvm::ConstantFP>(InitVal)) {
1013-
InitExpr = Builder->createConstantValueExpression(
1011+
InitExpr = unwrap(Builder)->createConstantValueExpression(
10141012
FPVal->getValueAPF().bitcastToAPInt().getZExtValue());
10151013
}
10161014

10171015
llvm::DIGlobalVariableExpression *VarExpr =
1018-
Builder->createGlobalVariableExpression(
1016+
unwrap(Builder)->createGlobalVariableExpression(
10191017
unwrapDI<DIDescriptor>(Context), StringRef(Name, NameLen),
10201018
StringRef(LinkageName, LinkageNameLen), unwrapDI<DIFile>(File),
10211019
LineNo, unwrapDI<DIType>(Ty), IsLocalToUnit,
@@ -1028,17 +1026,17 @@ extern "C" LLVMMetadataRef LLVMRustDIBuilderCreateStaticVariable(
10281026
}
10291027

10301028
extern "C" LLVMMetadataRef LLVMRustDIBuilderCreateVariable(
1031-
LLVMRustDIBuilderRef Builder, unsigned Tag, LLVMMetadataRef Scope,
1029+
LLVMDIBuilderRef Builder, unsigned Tag, LLVMMetadataRef Scope,
10321030
const char *Name, size_t NameLen, LLVMMetadataRef File, unsigned LineNo,
10331031
LLVMMetadataRef Ty, bool AlwaysPreserve, LLVMRustDIFlags Flags,
10341032
unsigned ArgNo, uint32_t AlignInBits) {
10351033
if (Tag == 0x100) { // DW_TAG_auto_variable
1036-
return wrap(Builder->createAutoVariable(
1034+
return wrap(unwrap(Builder)->createAutoVariable(
10371035
unwrapDI<DIDescriptor>(Scope), StringRef(Name, NameLen),
10381036
unwrapDI<DIFile>(File), LineNo, unwrapDI<DIType>(Ty), AlwaysPreserve,
10391037
fromRust(Flags), AlignInBits));
10401038
} else {
1041-
return wrap(Builder->createParameterVariable(
1039+
return wrap(unwrap(Builder)->createParameterVariable(
10421040
unwrapDI<DIDescriptor>(Scope), StringRef(Name, NameLen), ArgNo,
10431041
unwrapDI<DIFile>(File), LineNo, unwrapDI<DIType>(Ty), AlwaysPreserve,
10441042
fromRust(Flags)));
@@ -1053,41 +1051,42 @@ extern "C" void LLVMRustDIBuilderInsertDeclareRecordAtEnd(
10531051
unwrap<DIExpression>(Expr), unwrap<DILocation>(DebugLoc), unwrap(Block));
10541052
}
10551053

1056-
extern "C" LLVMMetadataRef LLVMRustDIBuilderCreateEnumerator(
1057-
LLVMRustDIBuilderRef Builder, const char *Name, size_t NameLen,
1058-
const uint64_t Value[2], unsigned SizeInBits, bool IsUnsigned) {
1059-
return wrap(Builder->createEnumerator(
1054+
extern "C" LLVMMetadataRef
1055+
LLVMRustDIBuilderCreateEnumerator(LLVMDIBuilderRef Builder, const char *Name,
1056+
size_t NameLen, const uint64_t Value[2],
1057+
unsigned SizeInBits, bool IsUnsigned) {
1058+
return wrap(unwrap(Builder)->createEnumerator(
10601059
StringRef(Name, NameLen),
10611060
APSInt(APInt(SizeInBits, ArrayRef<uint64_t>(Value, 2)), IsUnsigned)));
10621061
}
10631062

10641063
extern "C" LLVMMetadataRef LLVMRustDIBuilderCreateEnumerationType(
1065-
LLVMRustDIBuilderRef Builder, LLVMMetadataRef Scope, const char *Name,
1064+
LLVMDIBuilderRef Builder, LLVMMetadataRef Scope, const char *Name,
10661065
size_t NameLen, LLVMMetadataRef File, unsigned LineNumber,
10671066
uint64_t SizeInBits, uint32_t AlignInBits, LLVMMetadataRef Elements,
10681067
LLVMMetadataRef ClassTy, bool IsScoped) {
1069-
return wrap(Builder->createEnumerationType(
1068+
return wrap(unwrap(Builder)->createEnumerationType(
10701069
unwrapDI<DIDescriptor>(Scope), StringRef(Name, NameLen),
10711070
unwrapDI<DIFile>(File), LineNumber, SizeInBits, AlignInBits,
10721071
DINodeArray(unwrapDI<MDTuple>(Elements)), unwrapDI<DIType>(ClassTy),
10731072
/* RunTimeLang */ 0, "", IsScoped));
10741073
}
10751074

10761075
extern "C" LLVMMetadataRef LLVMRustDIBuilderCreateTemplateTypeParameter(
1077-
LLVMRustDIBuilderRef Builder, LLVMMetadataRef Scope, const char *Name,
1076+
LLVMDIBuilderRef Builder, LLVMMetadataRef Scope, const char *Name,
10781077
size_t NameLen, LLVMMetadataRef Ty) {
10791078
bool IsDefault = false; // FIXME: should we ever set this true?
1080-
return wrap(Builder->createTemplateTypeParameter(
1079+
return wrap(unwrap(Builder)->createTemplateTypeParameter(
10811080
unwrapDI<DIDescriptor>(Scope), StringRef(Name, NameLen),
10821081
unwrapDI<DIType>(Ty), IsDefault));
10831082
}
10841083

10851084
extern "C" void LLVMRustDICompositeTypeReplaceArrays(
1086-
LLVMRustDIBuilderRef Builder, LLVMMetadataRef CompositeTy,
1085+
LLVMDIBuilderRef Builder, LLVMMetadataRef CompositeTy,
10871086
LLVMMetadataRef Elements, LLVMMetadataRef Params) {
10881087
DICompositeType *Tmp = unwrapDI<DICompositeType>(CompositeTy);
1089-
Builder->replaceArrays(Tmp, DINodeArray(unwrap<MDTuple>(Elements)),
1090-
DINodeArray(unwrap<MDTuple>(Params)));
1088+
unwrap(Builder)->replaceArrays(Tmp, DINodeArray(unwrap<MDTuple>(Elements)),
1089+
DINodeArray(unwrap<MDTuple>(Params)));
10911090
}
10921091

10931092
extern "C" LLVMMetadataRef

0 commit comments

Comments
 (0)