diff options
author | Rafael Espindola <rafael.espindola@gmail.com> | 2014-04-22 19:11:07 +0000 |
---|---|---|
committer | Rafael Espindola <rafael.espindola@gmail.com> | 2014-04-22 19:11:07 +0000 |
commit | 8c8fae7268121d10ae4203062fc3ffe79759dbd3 (patch) | |
tree | e4b7b3111c7a5fe839879e550ada1c173da92ce2 | |
parent | 8dd58d1f02be8e172b4b54fb0a724bb82b01963f (diff) | |
download | llvm-8c8fae7268121d10ae4203062fc3ffe79759dbd3.tar.gz llvm-8c8fae7268121d10ae4203062fc3ffe79759dbd3.tar.bz2 llvm-8c8fae7268121d10ae4203062fc3ffe79759dbd3.tar.xz |
Follow aliases when determining if a symbol is thumb.
This fixes pr19484.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@206917 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | lib/MC/ELFObjectWriter.cpp | 3 | ||||
-rw-r--r-- | test/MC/ARM/elf-thumbfunc.s | 12 |
2 files changed, 12 insertions, 3 deletions
diff --git a/lib/MC/ELFObjectWriter.cpp b/lib/MC/ELFObjectWriter.cpp index 0885688d26..636d449e20 100644 --- a/lib/MC/ELFObjectWriter.cpp +++ b/lib/MC/ELFObjectWriter.cpp @@ -492,7 +492,6 @@ uint64_t ELFObjectWriter::SymbolValue(MCSymbolData &OrigData, return Data->getCommonAlignment(); const MCSymbol *Symbol = &Data->getSymbol(); - bool IsThumbFunc = OrigData.getFlags() & ELF_Other_ThumbFunc; uint64_t Res = 0; if (Symbol->isVariable()) { @@ -514,7 +513,7 @@ uint64_t ELFObjectWriter::SymbolValue(MCSymbolData &OrigData, } } - if (IsThumbFunc) + if (Data && Data->getFlags() & ELF_Other_ThumbFunc) Res |= 1; if (!Symbol || !Symbol->isInSection()) diff --git a/test/MC/ARM/elf-thumbfunc.s b/test/MC/ARM/elf-thumbfunc.s index 0ea11821b9..af061b50bc 100644 --- a/test/MC/ARM/elf-thumbfunc.s +++ b/test/MC/ARM/elf-thumbfunc.s @@ -11,7 +11,17 @@ foo: bx lr -@@ make sure foo is thumb function: bit 0 = 1 (st_value) + .global bar +bar = foo + +@@ make sure foo and bar are thumb function: bit 0 = 1 (st_value) +@CHECK: Symbol { +@CHECK: Name: bar +@CHECK-NEXT: Value: 0x1 +@CHECK-NEXT: Size: 0 +@CHECK-NEXT: Binding: Global +@CHECK-NEXT: Type: Function + @CHECK: Symbol { @CHECK: Name: foo @CHECK-NEXT: Value: 0x1 |