Skip to content
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Commit a6c38a9

Browse files
committedDec 27, 2024
don't pass the new params if llvm doesn't have the patch that makes it work
1 parent c7ff3cb commit a6c38a9

File tree

1 file changed

+20
-7
lines changed

1 file changed

+20
-7
lines changed
 

‎compiler/rustc_llvm/llvm-wrapper/RustWrapper.cpp

+20-7
Original file line numberDiff line numberDiff line change
@@ -822,6 +822,7 @@ static DISubprogram::DISPFlags fromRust(LLVMRustDISPFlags SPFlags) {
822822
return Result;
823823
}
824824

825+
#ifdef LLVM_RUSTLLVM
825826
// These values **must** match debuginfo::ShortBacktrace! They also *happen*
826827
// to match LLVM, but that isn't required as we do giant sets of
827828
// matching below. The value shouldn't be directly passed to LLVM.
@@ -846,6 +847,7 @@ static std::optional<ShortBacktraceAttr> shortBacktraceFromRust(LLVMRustShortBac
846847
report_fatal_error("bad ShortBacktraceAttr.");
847848
}
848849
}
850+
#endif
849851

850852
enum class LLVMRustDebugEmissionKind {
851853
NoDebug,
@@ -1041,18 +1043,22 @@ extern "C" LLVMMetadataRef LLVMRustDIBuilderCreateFunction(
10411043
size_t NameLen, const char *LinkageName, size_t LinkageNameLen,
10421044
LLVMMetadataRef File, unsigned LineNo, LLVMMetadataRef Ty,
10431045
unsigned ScopeLine, LLVMRustDIFlags Flags, LLVMRustDISPFlags SPFlags,
1044-
LLVMRustShortBacktrace shortBacktrace, LLVMValueRef MaybeFn, LLVMMetadataRef TParam,
1045-
LLVMMetadataRef Decl) {
1046+
#ifdef LLVM_RUSTLLVM
1047+
LLVMRustShortBacktrace shortBacktrace,
1048+
#endif
1049+
LLVMValueRef MaybeFn, LLVMMetadataRef TParam, LLVMMetadataRef Decl) {
10461050
DITemplateParameterArray TParams =
10471051
DITemplateParameterArray(unwrap<MDTuple>(TParam));
10481052
DISubprogram::DISPFlags llvmSPFlags = fromRust(SPFlags);
10491053
DINode::DIFlags llvmFlags = fromRust(Flags);
10501054
DISubprogram *Sub = Builder->createFunction(
10511055
unwrapDI<DIScope>(Scope), StringRef(Name, NameLen),
10521056
StringRef(LinkageName, LinkageNameLen), unwrapDI<DIFile>(File), LineNo,
1053-
unwrapDI<DISubroutineType>(Ty), ScopeLine, llvmFlags,
1054-
llvmSPFlags, shortBacktraceFromRust(shortBacktrace), TParams,
1055-
unwrapDIPtr<DISubprogram>(Decl));
1057+
unwrapDI<DISubroutineType>(Ty), ScopeLine, llvmFlags, llvmSPFlags,
1058+
#ifdef LLVM_RUSTLLVM
1059+
shortBacktraceFromRust(shortBacktrace),
1060+
#endif
1061+
TParams, unwrapDIPtr<DISubprogram>(Decl));
10561062
if (MaybeFn)
10571063
unwrap<Function>(MaybeFn)->setSubprogram(Sub);
10581064
return wrap(Sub);
@@ -1062,7 +1068,10 @@ extern "C" LLVMMetadataRef LLVMRustDIBuilderCreateMethod(
10621068
LLVMRustDIBuilderRef Builder, LLVMMetadataRef Scope, const char *Name,
10631069
size_t NameLen, const char *LinkageName, size_t LinkageNameLen,
10641070
LLVMMetadataRef File, unsigned LineNo, LLVMMetadataRef Ty,
1065-
LLVMRustDIFlags Flags, LLVMRustDISPFlags SPFlags, LLVMRustShortBacktrace shortBacktrace,
1071+
LLVMRustDIFlags Flags, LLVMRustDISPFlags SPFlags,
1072+
#ifdef LLVM_RUSTLLVM
1073+
LLVMRustShortBacktrace shortBacktrace,
1074+
#endif
10661075
LLVMMetadataRef TParam) {
10671076
DITemplateParameterArray TParams =
10681077
DITemplateParameterArray(unwrap<MDTuple>(TParam));
@@ -1073,7 +1082,11 @@ extern "C" LLVMMetadataRef LLVMRustDIBuilderCreateMethod(
10731082
StringRef(LinkageName, LinkageNameLen), unwrapDI<DIFile>(File), LineNo,
10741083
unwrapDI<DISubroutineType>(Ty), 0, 0,
10751084
nullptr, // VTable params aren't used
1076-
llvmFlags, llvmSPFlags, shortBacktraceFromRust(shortBacktrace), TParams);
1085+
llvmFlags, llvmSPFlags,
1086+
#ifdef LLVM_RUSTLLVM
1087+
shortBacktraceFromRust(shortBacktrace),
1088+
#endif
1089+
TParams);
10771090
return wrap(Sub);
10781091
}
10791092

0 commit comments

Comments
 (0)
Please sign in to comment.