diff options
author | Evgeniy Stepanov <eugeni.stepanov@gmail.com> | 2017-06-16 00:18:29 +0000 |
---|---|---|
committer | Evgeniy Stepanov <eugeni.stepanov@gmail.com> | 2017-06-16 00:18:29 +0000 |
commit | 4d4ee93d25640fafe73d512655cde20911782f8a (patch) | |
tree | 45427836f47d0a48beec92a833f68c7f62d66d95 /llvm/lib/IR/ModuleSummaryIndex.cpp | |
parent | 47d9a560de13fd194d38b37aa3bf5694d5be8443 (diff) | |
download | bcm5719-llvm-4d4ee93d25640fafe73d512655cde20911782f8a.tar.gz bcm5719-llvm-4d4ee93d25640fafe73d512655cde20911782f8a.zip |
[cfi] CFI-ICall for ThinLTO.
Implement ControlFlowIntegrity for indirect function calls in ThinLTO.
Design follows the RFC in llvm-dev, see
https://groups.google.com/d/msg/llvm-dev/MgUlaphu4Qc/kywu0AqjAQAJ
llvm-svn: 305533
Diffstat (limited to 'llvm/lib/IR/ModuleSummaryIndex.cpp')
-rw-r--r-- | llvm/lib/IR/ModuleSummaryIndex.cpp | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/llvm/lib/IR/ModuleSummaryIndex.cpp b/llvm/lib/IR/ModuleSummaryIndex.cpp index 721d4d47e36..51c4bae3332 100644 --- a/llvm/lib/IR/ModuleSummaryIndex.cpp +++ b/llvm/lib/IR/ModuleSummaryIndex.cpp @@ -60,8 +60,11 @@ ModuleSummaryIndex::getGlobalValueSummary(uint64_t ValueGUID, bool ModuleSummaryIndex::isGUIDLive(GlobalValue::GUID GUID) const { auto VI = getValueInfo(GUID); if (!VI) - return false; - for (auto &I : VI.getSummaryList()) + return true; + const auto &SummaryList = VI.getSummaryList(); + if (SummaryList.empty()) + return true; + for (auto &I : SummaryList) if (isGlobalValueLive(I.get())) return true; return false; |