Skip to content

Commit 9070e54

Browse files
committed
Properly unwrap LLVMDIBuilderRef in the remaining wrapper functions
1 parent edd9070 commit 9070e54

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
}
@@ -910,21 +908,21 @@ extern "C" void LLVMRustGlobalAddMetadata(LLVMValueRef Global, unsigned Kind,
910908
}
911909

912910
extern "C" LLVMMetadataRef LLVMRustDIBuilderCreateCompileUnit(
913-
LLVMRustDIBuilderRef Builder, unsigned Lang, LLVMMetadataRef FileRef,
911+
LLVMDIBuilderRef Builder, unsigned Lang, LLVMMetadataRef FileRef,
914912
const char *Producer, size_t ProducerLen, bool isOptimized,
915913
const char *Flags, unsigned RuntimeVer, const char *SplitName,
916914
size_t SplitNameLen, LLVMRustDebugEmissionKind Kind, uint64_t DWOId,
917915
bool SplitDebugInlining, LLVMRustDebugNameTableKind TableKind) {
918916
auto *File = unwrapDI<DIFile>(FileRef);
919917

920-
return wrap(Builder->createCompileUnit(
918+
return wrap(unwrap(Builder)->createCompileUnit(
921919
Lang, File, StringRef(Producer, ProducerLen), isOptimized, Flags,
922920
RuntimeVer, StringRef(SplitName, SplitNameLen), fromRust(Kind), DWOId,
923921
SplitDebugInlining, false, fromRust(TableKind)));
924922
}
925923

926924
extern "C" LLVMMetadataRef
927-
LLVMRustDIBuilderCreateFile(LLVMRustDIBuilderRef Builder, const char *Filename,
925+
LLVMRustDIBuilderCreateFile(LLVMDIBuilderRef Builder, const char *Filename,
928926
size_t FilenameLen, const char *Directory,
929927
size_t DirectoryLen, LLVMRustChecksumKind CSKind,
930928
const char *Checksum, size_t ChecksumLen,
@@ -937,13 +935,13 @@ LLVMRustDIBuilderCreateFile(LLVMRustDIBuilderRef Builder, const char *Filename,
937935
std::optional<StringRef> oSource{};
938936
if (Source)
939937
oSource = StringRef(Source, SourceLen);
940-
return wrap(Builder->createFile(StringRef(Filename, FilenameLen),
941-
StringRef(Directory, DirectoryLen), CSInfo,
942-
oSource));
938+
return wrap(unwrap(Builder)->createFile(StringRef(Filename, FilenameLen),
939+
StringRef(Directory, DirectoryLen),
940+
CSInfo, oSource));
943941
}
944942

945943
extern "C" LLVMMetadataRef LLVMRustDIBuilderCreateFunction(
946-
LLVMRustDIBuilderRef Builder, LLVMMetadataRef Scope, const char *Name,
944+
LLVMDIBuilderRef Builder, LLVMMetadataRef Scope, const char *Name,
947945
size_t NameLen, const char *LinkageName, size_t LinkageNameLen,
948946
LLVMMetadataRef File, unsigned LineNo, LLVMMetadataRef Ty,
949947
unsigned ScopeLine, LLVMRustDIFlags Flags, LLVMRustDISPFlags SPFlags,
@@ -952,7 +950,7 @@ extern "C" LLVMMetadataRef LLVMRustDIBuilderCreateFunction(
952950
DITemplateParameterArray(unwrap<MDTuple>(TParam));
953951
DISubprogram::DISPFlags llvmSPFlags = fromRust(SPFlags);
954952
DINode::DIFlags llvmFlags = fromRust(Flags);
955-
DISubprogram *Sub = Builder->createFunction(
953+
DISubprogram *Sub = unwrap(Builder)->createFunction(
956954
unwrapDI<DIScope>(Scope), StringRef(Name, NameLen),
957955
StringRef(LinkageName, LinkageNameLen), unwrapDI<DIFile>(File), LineNo,
958956
unwrapDI<DISubroutineType>(Ty), ScopeLine, llvmFlags, llvmSPFlags,
@@ -963,15 +961,15 @@ extern "C" LLVMMetadataRef LLVMRustDIBuilderCreateFunction(
963961
}
964962

965963
extern "C" LLVMMetadataRef LLVMRustDIBuilderCreateMethod(
966-
LLVMRustDIBuilderRef Builder, LLVMMetadataRef Scope, const char *Name,
964+
LLVMDIBuilderRef Builder, LLVMMetadataRef Scope, const char *Name,
967965
size_t NameLen, const char *LinkageName, size_t LinkageNameLen,
968966
LLVMMetadataRef File, unsigned LineNo, LLVMMetadataRef Ty,
969967
LLVMRustDIFlags Flags, LLVMRustDISPFlags SPFlags, LLVMMetadataRef TParam) {
970968
DITemplateParameterArray TParams =
971969
DITemplateParameterArray(unwrap<MDTuple>(TParam));
972970
DISubprogram::DISPFlags llvmSPFlags = fromRust(SPFlags);
973971
DINode::DIFlags llvmFlags = fromRust(Flags);
974-
DISubprogram *Sub = Builder->createMethod(
972+
DISubprogram *Sub = unwrap(Builder)->createMethod(
975973
unwrapDI<DIScope>(Scope), StringRef(Name, NameLen),
976974
StringRef(LinkageName, LinkageNameLen), unwrapDI<DIFile>(File), LineNo,
977975
unwrapDI<DISubroutineType>(Ty), 0, 0,
@@ -981,12 +979,12 @@ extern "C" LLVMMetadataRef LLVMRustDIBuilderCreateMethod(
981979
}
982980

983981
extern "C" LLVMMetadataRef LLVMRustDIBuilderCreateVariantPart(
984-
LLVMRustDIBuilderRef Builder, LLVMMetadataRef Scope, const char *Name,
982+
LLVMDIBuilderRef Builder, LLVMMetadataRef Scope, const char *Name,
985983
size_t NameLen, LLVMMetadataRef File, unsigned LineNumber,
986984
uint64_t SizeInBits, uint32_t AlignInBits, LLVMRustDIFlags Flags,
987985
LLVMMetadataRef Discriminator, LLVMMetadataRef Elements,
988986
const char *UniqueId, size_t UniqueIdLen) {
989-
return wrap(Builder->createVariantPart(
987+
return wrap(unwrap(Builder)->createVariantPart(
990988
unwrapDI<DIDescriptor>(Scope), StringRef(Name, NameLen),
991989
unwrapDI<DIFile>(File), LineNumber, SizeInBits, AlignInBits,
992990
fromRust(Flags), unwrapDI<DIDerivedType>(Discriminator),
@@ -995,22 +993,22 @@ extern "C" LLVMMetadataRef LLVMRustDIBuilderCreateVariantPart(
995993
}
996994

997995
extern "C" LLVMMetadataRef LLVMRustDIBuilderCreateVariantMemberType(
998-
LLVMRustDIBuilderRef Builder, LLVMMetadataRef Scope, const char *Name,
996+
LLVMDIBuilderRef Builder, LLVMMetadataRef Scope, const char *Name,
999997
size_t NameLen, LLVMMetadataRef File, unsigned LineNo, uint64_t SizeInBits,
1000998
uint32_t AlignInBits, uint64_t OffsetInBits, LLVMValueRef Discriminant,
1001999
LLVMRustDIFlags Flags, LLVMMetadataRef Ty) {
10021000
llvm::ConstantInt *D = nullptr;
10031001
if (Discriminant) {
10041002
D = unwrap<llvm::ConstantInt>(Discriminant);
10051003
}
1006-
return wrap(Builder->createVariantMemberType(
1004+
return wrap(unwrap(Builder)->createVariantMemberType(
10071005
unwrapDI<DIDescriptor>(Scope), StringRef(Name, NameLen),
10081006
unwrapDI<DIFile>(File), LineNo, SizeInBits, AlignInBits, OffsetInBits, D,
10091007
fromRust(Flags), unwrapDI<DIType>(Ty)));
10101008
}
10111009

10121010
extern "C" LLVMMetadataRef LLVMRustDIBuilderCreateStaticVariable(
1013-
LLVMRustDIBuilderRef Builder, LLVMMetadataRef Context, const char *Name,
1011+
LLVMDIBuilderRef Builder, LLVMMetadataRef Context, const char *Name,
10141012
size_t NameLen, const char *LinkageName, size_t LinkageNameLen,
10151013
LLVMMetadataRef File, unsigned LineNo, LLVMMetadataRef Ty,
10161014
bool IsLocalToUnit, LLVMValueRef V, LLVMMetadataRef Decl = nullptr,
@@ -1019,16 +1017,16 @@ extern "C" LLVMMetadataRef LLVMRustDIBuilderCreateStaticVariable(
10191017

10201018
llvm::DIExpression *InitExpr = nullptr;
10211019
if (llvm::ConstantInt *IntVal = llvm::dyn_cast<llvm::ConstantInt>(InitVal)) {
1022-
InitExpr = Builder->createConstantValueExpression(
1020+
InitExpr = unwrap(Builder)->createConstantValueExpression(
10231021
IntVal->getValue().getSExtValue());
10241022
} else if (llvm::ConstantFP *FPVal =
10251023
llvm::dyn_cast<llvm::ConstantFP>(InitVal)) {
1026-
InitExpr = Builder->createConstantValueExpression(
1024+
InitExpr = unwrap(Builder)->createConstantValueExpression(
10271025
FPVal->getValueAPF().bitcastToAPInt().getZExtValue());
10281026
}
10291027

10301028
llvm::DIGlobalVariableExpression *VarExpr =
1031-
Builder->createGlobalVariableExpression(
1029+
unwrap(Builder)->createGlobalVariableExpression(
10321030
unwrapDI<DIDescriptor>(Context), StringRef(Name, NameLen),
10331031
StringRef(LinkageName, LinkageNameLen), unwrapDI<DIFile>(File),
10341032
LineNo, unwrapDI<DIType>(Ty), IsLocalToUnit,
@@ -1041,17 +1039,17 @@ extern "C" LLVMMetadataRef LLVMRustDIBuilderCreateStaticVariable(
10411039
}
10421040

10431041
extern "C" LLVMMetadataRef LLVMRustDIBuilderCreateVariable(
1044-
LLVMRustDIBuilderRef Builder, unsigned Tag, LLVMMetadataRef Scope,
1042+
LLVMDIBuilderRef Builder, unsigned Tag, LLVMMetadataRef Scope,
10451043
const char *Name, size_t NameLen, LLVMMetadataRef File, unsigned LineNo,
10461044
LLVMMetadataRef Ty, bool AlwaysPreserve, LLVMRustDIFlags Flags,
10471045
unsigned ArgNo, uint32_t AlignInBits) {
10481046
if (Tag == 0x100) { // DW_TAG_auto_variable
1049-
return wrap(Builder->createAutoVariable(
1047+
return wrap(unwrap(Builder)->createAutoVariable(
10501048
unwrapDI<DIDescriptor>(Scope), StringRef(Name, NameLen),
10511049
unwrapDI<DIFile>(File), LineNo, unwrapDI<DIType>(Ty), AlwaysPreserve,
10521050
fromRust(Flags), AlignInBits));
10531051
} else {
1054-
return wrap(Builder->createParameterVariable(
1052+
return wrap(unwrap(Builder)->createParameterVariable(
10551053
unwrapDI<DIDescriptor>(Scope), StringRef(Name, NameLen), ArgNo,
10561054
unwrapDI<DIFile>(File), LineNo, unwrapDI<DIType>(Ty), AlwaysPreserve,
10571055
fromRust(Flags)));
@@ -1066,41 +1064,42 @@ extern "C" void LLVMRustDIBuilderInsertDeclareRecordAtEnd(
10661064
unwrap<DIExpression>(Expr), unwrap<DILocation>(DebugLoc), unwrap(Block));
10671065
}
10681066

1069-
extern "C" LLVMMetadataRef LLVMRustDIBuilderCreateEnumerator(
1070-
LLVMRustDIBuilderRef Builder, const char *Name, size_t NameLen,
1071-
const uint64_t Value[2], unsigned SizeInBits, bool IsUnsigned) {
1072-
return wrap(Builder->createEnumerator(
1067+
extern "C" LLVMMetadataRef
1068+
LLVMRustDIBuilderCreateEnumerator(LLVMDIBuilderRef Builder, const char *Name,
1069+
size_t NameLen, const uint64_t Value[2],
1070+
unsigned SizeInBits, bool IsUnsigned) {
1071+
return wrap(unwrap(Builder)->createEnumerator(
10731072
StringRef(Name, NameLen),
10741073
APSInt(APInt(SizeInBits, ArrayRef<uint64_t>(Value, 2)), IsUnsigned)));
10751074
}
10761075

10771076
extern "C" LLVMMetadataRef LLVMRustDIBuilderCreateEnumerationType(
1078-
LLVMRustDIBuilderRef Builder, LLVMMetadataRef Scope, const char *Name,
1077+
LLVMDIBuilderRef Builder, LLVMMetadataRef Scope, const char *Name,
10791078
size_t NameLen, LLVMMetadataRef File, unsigned LineNumber,
10801079
uint64_t SizeInBits, uint32_t AlignInBits, LLVMMetadataRef Elements,
10811080
LLVMMetadataRef ClassTy, bool IsScoped) {
1082-
return wrap(Builder->createEnumerationType(
1081+
return wrap(unwrap(Builder)->createEnumerationType(
10831082
unwrapDI<DIDescriptor>(Scope), StringRef(Name, NameLen),
10841083
unwrapDI<DIFile>(File), LineNumber, SizeInBits, AlignInBits,
10851084
DINodeArray(unwrapDI<MDTuple>(Elements)), unwrapDI<DIType>(ClassTy),
10861085
/* RunTimeLang */ 0, "", IsScoped));
10871086
}
10881087

10891088
extern "C" LLVMMetadataRef LLVMRustDIBuilderCreateTemplateTypeParameter(
1090-
LLVMRustDIBuilderRef Builder, LLVMMetadataRef Scope, const char *Name,
1089+
LLVMDIBuilderRef Builder, LLVMMetadataRef Scope, const char *Name,
10911090
size_t NameLen, LLVMMetadataRef Ty) {
10921091
bool IsDefault = false; // FIXME: should we ever set this true?
1093-
return wrap(Builder->createTemplateTypeParameter(
1092+
return wrap(unwrap(Builder)->createTemplateTypeParameter(
10941093
unwrapDI<DIDescriptor>(Scope), StringRef(Name, NameLen),
10951094
unwrapDI<DIType>(Ty), IsDefault));
10961095
}
10971096

10981097
extern "C" void LLVMRustDICompositeTypeReplaceArrays(
1099-
LLVMRustDIBuilderRef Builder, LLVMMetadataRef CompositeTy,
1098+
LLVMDIBuilderRef Builder, LLVMMetadataRef CompositeTy,
11001099
LLVMMetadataRef Elements, LLVMMetadataRef Params) {
11011100
DICompositeType *Tmp = unwrapDI<DICompositeType>(CompositeTy);
1102-
Builder->replaceArrays(Tmp, DINodeArray(unwrap<MDTuple>(Elements)),
1103-
DINodeArray(unwrap<MDTuple>(Params)));
1101+
unwrap(Builder)->replaceArrays(Tmp, DINodeArray(unwrap<MDTuple>(Elements)),
1102+
DINodeArray(unwrap<MDTuple>(Params)));
11041103
}
11051104

11061105
extern "C" LLVMMetadataRef

0 commit comments

Comments
 (0)