about summary refs log tree commit diff
path: root/compiler/rustc_llvm/llvm-wrapper/RustWrapper.cpp
diff options
context:
space:
mode:
authorErik Desjardins <erikdesjardins@users.noreply.github.com>2022-02-26 17:16:01 -0500
committerErik Desjardins <erikdesjardins@users.noreply.github.com>2022-02-26 17:16:01 -0500
commit0d0cc4f6a0cb48600f183c382986df1897bdb7dc (patch)
tree9837b1bdb488b9dbe366b4c28379e6dca4652724 /compiler/rustc_llvm/llvm-wrapper/RustWrapper.cpp
parentac9f4f7d0de3986246a19678919ff15252870b15 (diff)
downloadrust-0d0cc4f6a0cb48600f183c382986df1897bdb7dc.tar.gz
rust-0d0cc4f6a0cb48600f183c382986df1897bdb7dc.zip
AttrBuilder doesn't take a context in old LLVM
Diffstat (limited to 'compiler/rustc_llvm/llvm-wrapper/RustWrapper.cpp')
-rw-r--r--compiler/rustc_llvm/llvm-wrapper/RustWrapper.cpp11
1 files changed, 7 insertions, 4 deletions
diff --git a/compiler/rustc_llvm/llvm-wrapper/RustWrapper.cpp b/compiler/rustc_llvm/llvm-wrapper/RustWrapper.cpp
index 1ba54ca0779..d627af48ba5 100644
--- a/compiler/rustc_llvm/llvm-wrapper/RustWrapper.cpp
+++ b/compiler/rustc_llvm/llvm-wrapper/RustWrapper.cpp
@@ -234,14 +234,17 @@ static Attribute::AttrKind fromRust(LLVMRustAttribute Kind) {
 
 template<typename T> static inline void AddAttributes(T *t, unsigned Index,
                                                       LLVMAttributeRef *Attrs, size_t AttrsLen) {
-  AttrBuilder B(t->getContext());
-  for (LLVMAttributeRef Attr : makeArrayRef(Attrs, AttrsLen))
-    B.addAttribute(unwrap(Attr));
   AttributeList PAL = t->getAttributes();
   AttributeList PALNew;
 #if LLVM_VERSION_LT(14, 0)
+  AttrBuilder B;
+  for (LLVMAttributeRef Attr : makeArrayRef(Attrs, AttrsLen))
+    B.addAttribute(unwrap(Attr));
   PALNew = PAL.addAttributes(t->getContext(), Index, B);
 #else
+  AttrBuilder B(t->getContext());
+  for (LLVMAttributeRef Attr : makeArrayRef(Attrs, AttrsLen))
+    B.addAttribute(unwrap(Attr));
   PALNew = PAL.addAttributesAtIndex(t->getContext(), Index, B);
 #endif
   t->setAttributes(PALNew);
@@ -253,7 +256,7 @@ template<typename T> static inline void RemoveAttributes(T *t, unsigned Index,
   AttributeList PAL = t->getAttributes();
   AttributeList PALNew;
 #if LLVM_VERSION_LT(14, 0)
-  AttrBuilder B(t->getContext());
+  AttrBuilder B;
   for (LLVMRustAttribute RustAttr : makeArrayRef(RustAttrs, RustAttrsLen))
     B.addAttribute(fromRust(RustAttr));
   PALNew = PAL.removeAttributes(t->getContext(), Index, B);