diff options
| author | Petar Jovanovic <petar.jovanovic@imgtec.com> | 2014-09-23 12:54:19 +0000 |
|---|---|---|
| committer | Petar Jovanovic <petar.jovanovic@imgtec.com> | 2014-09-23 12:54:19 +0000 |
| commit | 7480e4db5e629e8410c9fed37b3f9a16bb57a8fa (patch) | |
| tree | c08583030536877e89eae4c00a76e68ad87ca6e0 /llvm/lib | |
| parent | 40592d2dec009c2bb3204c75d195f42ebcada739 (diff) | |
| download | bcm5719-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.cpp | 2 |
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) { |

