summaryrefslogtreecommitdiff
path: root/include/llvm
diff options
context:
space:
mode:
authorRafael Espindola <rafael.espindola@gmail.com>2014-04-03 02:20:43 +0000
committerRafael Espindola <rafael.espindola@gmail.com>2014-04-03 02:20:43 +0000
commitee2bf5b6077315359af175c7ee5ae580002637a3 (patch)
treec59c493a3a50a6de5cd7cb0ad7ddb105389866a2 /include/llvm
parent96b816800ecf1ba0480b6722a5bc6b9f37c57e29 (diff)
downloadllvm-ee2bf5b6077315359af175c7ee5ae580002637a3.tar.gz
llvm-ee2bf5b6077315359af175c7ee5ae580002637a3.tar.bz2
llvm-ee2bf5b6077315359af175c7ee5ae580002637a3.tar.xz
Only clear the thumb bit from function addresses.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@205500 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/llvm')
-rw-r--r--include/llvm/Object/ELFObjectFile.h3
1 files changed, 2 insertions, 1 deletions
diff --git a/include/llvm/Object/ELFObjectFile.h b/include/llvm/Object/ELFObjectFile.h
index e2c5fc77fc..9bdee9f569 100644
--- a/include/llvm/Object/ELFObjectFile.h
+++ b/include/llvm/Object/ELFObjectFile.h
@@ -292,7 +292,8 @@ error_code ELFObjectFile<ELFT>::getSymbolAddress(DataRefImpl Symb,
Result = ESym->st_value;
// Clear the ARM/Thumb indicator flag.
- if (Header->e_machine == ELF::EM_ARM)
+ if (EF.getHeader()->e_machine == ELF::EM_ARM &&
+ ESym->getType() == ELF::STT_FUNC)
Result &= ~1;
if (Header->e_type == ELF::ET_REL)