summaryrefslogtreecommitdiffstats
path: root/llvm/lib
diff options
context:
space:
mode:
authorPetar Jovanovic <petar.jovanovic@imgtec.com>2014-09-23 12:54:19 +0000
committerPetar Jovanovic <petar.jovanovic@imgtec.com>2014-09-23 12:54:19 +0000
commit7480e4db5e629e8410c9fed37b3f9a16bb57a8fa (patch)
treec08583030536877e89eae4c00a76e68ad87ca6e0 /llvm/lib
parent40592d2dec009c2bb3204c75d195f42ebcada739 (diff)
downloadbcm5719-llvm-7480e4db5e629e8410c9fed37b3f9a16bb57a8fa.tar.gz
bcm5719-llvm-7480e4db5e629e8410c9fed37b3f9a16bb57a8fa.zip
Do not destroy external linkage when deleting function body
The function deleteBody() converts the linkage to external and thus destroys original linkage type value. Lack of correct linkage type causes wrong relocations to be emitted later. Calling dropAllReferences() instead of deleteBody() will fix the issue. Differential Revision: http://reviews.llvm.org/D5415 llvm-svn: 218302
Diffstat (limited to 'llvm/lib')
-rw-r--r--llvm/lib/Bitcode/Reader/BitcodeReader.cpp2
1 files changed, 1 insertions, 1 deletions
diff --git a/llvm/lib/Bitcode/Reader/BitcodeReader.cpp b/llvm/lib/Bitcode/Reader/BitcodeReader.cpp
index 80afb56e746..f113c2c71d1 100644
--- a/llvm/lib/Bitcode/Reader/BitcodeReader.cpp
+++ b/llvm/lib/Bitcode/Reader/BitcodeReader.cpp
@@ -3347,7 +3347,7 @@ void BitcodeReader::Dematerialize(GlobalValue *GV) {
assert(DeferredFunctionInfo.count(F) && "No info to read function later?");
// Just forget the function body, we can remat it later.
- F->deleteBody();
+ F->dropAllReferences();
}
std::error_code BitcodeReader::MaterializeModule(Module *M) {
OpenPOWER on IntegriCloud