about summary refs log tree commit diff
path: root/src/rustllvm/RustWrapper.cpp
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2015-10-25 08:47:46 +0000
committerbors <bors@rust-lang.org>2015-10-25 08:47:46 +0000
commit92dd81ab51bc3db89d1b4d8ec21768b3353b49e3 (patch)
treeb76987ca9910da7c3e8bc71643d20b0f1fb4d5cc /src/rustllvm/RustWrapper.cpp
parent49b232edaf09970cba682750c217db9603f8582e (diff)
parentb285f9202590050a7b480a99a074673630b11f4f (diff)
downloadrust-92dd81ab51bc3db89d1b4d8ec21768b3353b49e3.tar.gz
rust-92dd81ab51bc3db89d1b4d8ec21768b3353b49e3.zip
Auto merge of #29272 - sanxiyn:llvm-update, r=alexcrichton
cc @zazdxscf
Diffstat (limited to 'src/rustllvm/RustWrapper.cpp')
-rw-r--r--src/rustllvm/RustWrapper.cpp18
1 files changed, 18 insertions, 0 deletions
diff --git a/src/rustllvm/RustWrapper.cpp b/src/rustllvm/RustWrapper.cpp
index 9ce34c40730..5a9c096e5f5 100644
--- a/src/rustllvm/RustWrapper.cpp
+++ b/src/rustllvm/RustWrapper.cpp
@@ -320,7 +320,9 @@ extern "C" LLVMMetadataRef LLVMDIBuilderCreateSubroutineType(
     LLVMMetadataRef File,
     LLVMMetadataRef ParameterTypes) {
     return wrap(Builder->createSubroutineType(
+#if LLVM_VERSION_MINOR <= 7
         unwrapDI<DIFile>(File),
+#endif
 #if LLVM_VERSION_MINOR >= 7
         DITypeRefArray(unwrap<MDTuple>(ParameterTypes))));
 #elif LLVM_VERSION_MINOR >= 6
@@ -502,11 +504,27 @@ extern "C" LLVMMetadataRef LLVMDIBuilderCreateVariable(
         ));
     }
 #endif
+#if LLVM_VERSION_MINOR >= 8
+    if (Tag == 0x100) { // DW_TAG_auto_variable
+        return wrap(Builder->createAutoVariable(
+            unwrapDI<DIDescriptor>(Scope), Name,
+            unwrapDI<DIFile>(File),
+            LineNo,
+            unwrapDI<DIType>(Ty), AlwaysPreserve, Flags));
+    } else {
+        return wrap(Builder->createParameterVariable(
+            unwrapDI<DIDescriptor>(Scope), Name, ArgNo,
+            unwrapDI<DIFile>(File),
+            LineNo,
+            unwrapDI<DIType>(Ty), AlwaysPreserve, Flags));
+    }
+#else
     return wrap(Builder->createLocalVariable(Tag,
         unwrapDI<DIDescriptor>(Scope), Name,
         unwrapDI<DIFile>(File),
         LineNo,
         unwrapDI<DIType>(Ty), AlwaysPreserve, Flags, ArgNo));
+#endif
 }
 
 extern "C" LLVMMetadataRef LLVMDIBuilderCreateArrayType(