summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Bitcode/Reader/BitcodeReader.cpp
diff options
context:
space:
mode:
authorEvgeniy Stepanov <eugeni.stepanov@gmail.com>2017-06-16 00:18:29 +0000
committerEvgeniy Stepanov <eugeni.stepanov@gmail.com>2017-06-16 00:18:29 +0000
commit4d4ee93d25640fafe73d512655cde20911782f8a (patch)
tree45427836f47d0a48beec92a833f68c7f62d66d95 /llvm/lib/Bitcode/Reader/BitcodeReader.cpp
parent47d9a560de13fd194d38b37aa3bf5694d5be8443 (diff)
downloadbcm5719-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/Bitcode/Reader/BitcodeReader.cpp')
-rw-r--r--llvm/lib/Bitcode/Reader/BitcodeReader.cpp12
1 files changed, 12 insertions, 0 deletions
diff --git a/llvm/lib/Bitcode/Reader/BitcodeReader.cpp b/llvm/lib/Bitcode/Reader/BitcodeReader.cpp
index e732daaea2e..f944cc8c955 100644
--- a/llvm/lib/Bitcode/Reader/BitcodeReader.cpp
+++ b/llvm/lib/Bitcode/Reader/BitcodeReader.cpp
@@ -5252,6 +5252,18 @@ Error ModuleSummaryIndexBitcodeReader::parseEntireSummary(unsigned ID) {
{{Record[0], Record[1]}, {Record.begin() + 2, Record.end()}});
break;
}
+ case bitc::FS_CFI_FUNCTION_DEFS: {
+ std::set<std::string> &CfiFunctionDefs = TheIndex.cfiFunctionDefs();
+ for (unsigned I = 0; I != Record.size(); I += 2)
+ CfiFunctionDefs.insert({Strtab.data() + Record[I], Record[I+1]});
+ break;
+ }
+ case bitc::FS_CFI_FUNCTION_DECLS: {
+ std::set<std::string> &CfiFunctionDecls = TheIndex.cfiFunctionDecls();
+ for (unsigned I = 0; I != Record.size(); I += 2)
+ CfiFunctionDecls.insert({Strtab.data() + Record[I], Record[I+1]});
+ break;
+ }
}
}
llvm_unreachable("Exit infinite loop");
OpenPOWER on IntegriCloud