about summary refs log tree commit diff
path: root/src/rustllvm/PassWrapper.cpp
diff options
context:
space:
mode:
authorTatsuyuki Ishi <ishitatsuyuki@gmail.com>2017-12-11 15:52:58 +0900
committerTatsuyuki Ishi <ishitatsuyuki@gmail.com>2017-12-12 13:31:39 +0900
commitdffa36c0052d9758f8f28d35d62ab3fdca4e53cc (patch)
treed6205870b835a1f481b2b8f34dc2f6fa05a993e9 /src/rustllvm/PassWrapper.cpp
parent830599b19538a4b30f0c4203d9e5f4e6b5cee0ff (diff)
downloadrust-dffa36c0052d9758f8f28d35d62ab3fdca4e53cc.tar.gz
rust-dffa36c0052d9758f8f28d35d62ab3fdca4e53cc.zip
ThinLTO: updates for LLVM 5
refs:

https://github.com/llvm-mirror/llvm/commit/ccb80b9c0f60f33780e5e29bf66a87bb56968b99
https://github.com/llvm-mirror/llvm/commit/e611018a3f1237c9328763027db4a616ed7be04a
Diffstat (limited to 'src/rustllvm/PassWrapper.cpp')
-rw-r--r--src/rustllvm/PassWrapper.cpp8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/rustllvm/PassWrapper.cpp b/src/rustllvm/PassWrapper.cpp
index 072a9144f17..e0a14f9b14f 100644
--- a/src/rustllvm/PassWrapper.cpp
+++ b/src/rustllvm/PassWrapper.cpp
@@ -969,11 +969,19 @@ LLVMRustCreateThinLTOData(LLVMRustThinLTOModule *modules,
   // linkage will stay as external, and internal will stay as internal.
   std::set<GlobalValue::GUID> ExportedGUIDs;
   for (auto &List : Ret->Index) {
+#if LLVM_VERSION_GE(5, 0)
+    for (auto &GVS: List.second.SummaryList) {
+#else
     for (auto &GVS: List.second) {
+#endif
       if (GlobalValue::isLocalLinkage(GVS->linkage()))
         continue;
       auto GUID = GVS->getOriginalName();
+#if LLVM_VERSION_GE(5, 0)
+      if (GVS->flags().Live)
+#else
       if (!DeadSymbols.count(GUID))
+#endif
         ExportedGUIDs.insert(GUID);
     }
   }