70 lines
2.6 KiB
Diff
70 lines
2.6 KiB
Diff
From 1b512e5ece0a56733d298db227f7c6a933cb5123 Mon Sep 17 00:00:00 2001
|
|
From: Krasimir Georgiev <krasimir@google.com>
|
|
Date: Sun, 11 Dec 2022 09:14:50 +0000
|
|
Subject: [PATCH] llvm-wrapper: adapt for LLVM API changes
|
|
|
|
This is a follow-up of
|
|
https://github.com/rust-lang/rust/commit/75aec4703dea7ef8e13924ccfa3a3d2e8c5c7cff.
|
|
There, I updated the wrapper to only include llvm/ADT/Optional.h for
|
|
LLVM version below 16. But I missed updating some of the None references.
|
|
|
|
Found by our experimental rust + llvm at HEAD bot:
|
|
https://buildkite.com/llvm-project/rust-llvm-integrate-prototype/builds/15587#0185006b-e0af-49e5-8b06-280ed125ff0d/200-539
|
|
|
|
(cherry picked from commit cbdc00f6e61132cbb74397cbb91171756e5d5834)
|
|
---
|
|
compiler/rustc_llvm/llvm-wrapper/PassWrapper.cpp | 4 ++++
|
|
compiler/rustc_llvm/llvm-wrapper/RustWrapper.cpp | 12 +++++++++++-
|
|
2 files changed, 15 insertions(+), 1 deletion(-)
|
|
|
|
diff --git a/compiler/rustc_llvm/llvm-wrapper/PassWrapper.cpp b/compiler/rustc_llvm/llvm-wrapper/PassWrapper.cpp
|
|
index 1a3d458c3006..2865ea892733 100644
|
|
--- a/compiler/rustc_llvm/llvm-wrapper/PassWrapper.cpp
|
|
+++ b/compiler/rustc_llvm/llvm-wrapper/PassWrapper.cpp
|
|
@@ -223,7 +223,11 @@ fromRust(LLVMRustCodeModel Model) {
|
|
case LLVMRustCodeModel::Large:
|
|
return CodeModel::Large;
|
|
case LLVMRustCodeModel::None:
|
|
+#if LLVM_VERSION_LT(16, 0)
|
|
return None;
|
|
+#else
|
|
+ return std::nullopt;
|
|
+#endif
|
|
default:
|
|
report_fatal_error("Bad CodeModel.");
|
|
}
|
|
diff --git a/compiler/rustc_llvm/llvm-wrapper/RustWrapper.cpp b/compiler/rustc_llvm/llvm-wrapper/RustWrapper.cpp
|
|
index 3a748f38995b..6e63a7e01b5f 100644
|
|
--- a/compiler/rustc_llvm/llvm-wrapper/RustWrapper.cpp
|
|
+++ b/compiler/rustc_llvm/llvm-wrapper/RustWrapper.cpp
|
|
@@ -322,7 +322,13 @@ extern "C" LLVMAttributeRef LLVMRustCreateUWTableAttr(LLVMContextRef C, bool Asy
|
|
}
|
|
|
|
extern "C" LLVMAttributeRef LLVMRustCreateAllocSizeAttr(LLVMContextRef C, uint32_t ElementSizeArg) {
|
|
- return wrap(Attribute::getWithAllocSizeArgs(*unwrap(C), ElementSizeArg, None));
|
|
+ return wrap(Attribute::getWithAllocSizeArgs(*unwrap(C), ElementSizeArg,
|
|
+#if LLVM_VERSION_LT(16, 0)
|
|
+ None
|
|
+#else
|
|
+ std::nullopt
|
|
+#endif
|
|
+ ));
|
|
}
|
|
|
|
#if LLVM_VERSION_GE(15, 0)
|
|
@@ -717,7 +723,11 @@ static std::optional<DIFile::ChecksumKind> fromRust(LLVMRustChecksumKind Kind) {
|
|
#endif
|
|
switch (Kind) {
|
|
case LLVMRustChecksumKind::None:
|
|
+#if LLVM_VERSION_LT(16, 0)
|
|
return None;
|
|
+#else
|
|
+ return std::nullopt;
|
|
+#endif
|
|
case LLVMRustChecksumKind::MD5:
|
|
return DIFile::ChecksumKind::CSK_MD5;
|
|
case LLVMRustChecksumKind::SHA1:
|
|
--
|
|
2.40.0
|
|
|