about summary refs log tree commit diff
path: root/src/rustllvm/RustWrapper.cpp
diff options
context:
space:
mode:
authorNikita Popov <nikita.ppv@gmail.com>2019-12-31 14:28:56 +0100
committerNikita Popov <nikita.ppv@gmail.com>2020-01-07 21:28:22 +0100
commit6d59017132d32c000b707d5ba51f785a78d49b02 (patch)
tree5686f70a486573e7a0d99d23cefd5c4b77a1faf9 /src/rustllvm/RustWrapper.cpp
parentaa9d02ea539ceb0bcb225d8462316bf22b6bffd8 (diff)
downloadrust-6d59017132d32c000b707d5ba51f785a78d49b02.tar.gz
rust-6d59017132d32c000b707d5ba51f785a78d49b02.zip
Handle switch to Expected<StringRef> for section name
Diffstat (limited to 'src/rustllvm/RustWrapper.cpp')
-rw-r--r--src/rustllvm/RustWrapper.cpp8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/rustllvm/RustWrapper.cpp b/src/rustllvm/RustWrapper.cpp
index 78feb9194d7..5daca9729bf 100644
--- a/src/rustllvm/RustWrapper.cpp
+++ b/src/rustllvm/RustWrapper.cpp
@@ -1003,11 +1003,19 @@ inline section_iterator *unwrap(LLVMSectionIteratorRef SI) {
 
 extern "C" size_t LLVMRustGetSectionName(LLVMSectionIteratorRef SI,
                                          const char **Ptr) {
+#if LLVM_VERSION_GE(10, 0)
+  auto NameOrErr = (*unwrap(SI))->getName();
+  if (!NameOrErr)
+    report_fatal_error(NameOrErr.takeError());
+  *Ptr = NameOrErr->data();
+  return NameOrErr->size();
+#else
   StringRef Ret;
   if (std::error_code EC = (*unwrap(SI))->getName(Ret))
     report_fatal_error(EC.message());
   *Ptr = Ret.data();
   return Ret.size();
+#endif
 }
 
 // LLVMArrayType function does not support 64-bit ElementCount