summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/ARM/MCTargetDesc/ARMELFStreamer.cpp
diff options
context:
space:
mode:
authorScott Douglass <sdouglass@arm.com>2014-06-30 09:37:24 +0000
committerScott Douglass <sdouglass@arm.com>2014-06-30 09:37:24 +0000
commit7650a9b8713e6f23495d558bb8c72e3f3c13a42b (patch)
tree30ff92a0fb98b8298d6f9863218cd97e0d3407ba /llvm/lib/Target/ARM/MCTargetDesc/ARMELFStreamer.cpp
parent06812bc98b88d5769f3283a1d3085c1fd50d3908 (diff)
downloadbcm5719-llvm-7650a9b8713e6f23495d558bb8c72e3f3c13a42b.tar.gz
bcm5719-llvm-7650a9b8713e6f23495d558bb8c72e3f3c13a42b.zip
ARM: take care not to set the ThumbFunc bit on TLS data symbols
This fixes LNT SingleSource/UnitTests/Threads with -mthumb. Differential Revision: http://reviews.llvm.org/D4324 llvm-svn: 212029
Diffstat (limited to 'llvm/lib/Target/ARM/MCTargetDesc/ARMELFStreamer.cpp')
-rw-r--r--llvm/lib/Target/ARM/MCTargetDesc/ARMELFStreamer.cpp3
1 files changed, 2 insertions, 1 deletions
diff --git a/llvm/lib/Target/ARM/MCTargetDesc/ARMELFStreamer.cpp b/llvm/lib/Target/ARM/MCTargetDesc/ARMELFStreamer.cpp
index 3782a6b43ad..7b5d8b01dfe 100644
--- a/llvm/lib/Target/ARM/MCTargetDesc/ARMELFStreamer.cpp
+++ b/llvm/lib/Target/ARM/MCTargetDesc/ARMELFStreamer.cpp
@@ -992,7 +992,8 @@ void ARMTargetELFStreamer::emitLabel(MCSymbol *Symbol) {
return;
const MCSymbolData &SD = Streamer.getOrCreateSymbolData(Symbol);
- if (MCELF::GetType(SD) & (ELF::STT_FUNC << ELF_STT_Shift))
+ unsigned Type = MCELF::GetType(SD);
+ if (Type == ELF_STT_Func || Type == ELF_STT_GnuIFunc)
Streamer.EmitThumbFunc(Symbol);
}
OpenPOWER on IntegriCloud