diff options
| -rw-r--r-- | llvm/lib/Target/ARM/MCTargetDesc/ARMELFStreamer.cpp | 7 | ||||
| -rw-r--r-- | llvm/test/MC/ARM/thumb_set.s | 25 |
2 files changed, 12 insertions, 20 deletions
diff --git a/llvm/lib/Target/ARM/MCTargetDesc/ARMELFStreamer.cpp b/llvm/lib/Target/ARM/MCTargetDesc/ARMELFStreamer.cpp index e55aa667134..3f5f42318ff 100644 --- a/llvm/lib/Target/ARM/MCTargetDesc/ARMELFStreamer.cpp +++ b/llvm/lib/Target/ARM/MCTargetDesc/ARMELFStreamer.cpp @@ -1003,11 +1003,8 @@ ARMTargetELFStreamer::AnnotateTLSDescriptorSequence(const MCSymbolRefExpr *S) { void ARMTargetELFStreamer::emitThumbSet(MCSymbol *Symbol, const MCExpr *Value) { if (const MCSymbolRefExpr *SRE = dyn_cast<MCSymbolRefExpr>(Value)) { - // FIXME: Doing a lookup in here is a hack. - MCSymbol *Sym = - getStreamer().getContext().LookupSymbol(SRE->getSymbol().getName()); - if (!Sym->isDefined()) { - getStreamer().EmitSymbolAttribute(Sym, MCSA_Global); + const MCSymbol &Sym = SRE->getSymbol(); + if (!Sym.isDefined()) { getStreamer().EmitAssignment(Symbol, Value); return; } diff --git a/llvm/test/MC/ARM/thumb_set.s b/llvm/test/MC/ARM/thumb_set.s index ac4bd328895..d2a0dc04730 100644 --- a/llvm/test/MC/ARM/thumb_set.s +++ b/llvm/test/MC/ARM/thumb_set.s @@ -59,8 +59,6 @@ beta: .thumb_set beta, alpha - .thumb_set alias_undefined, undefined - @ CHECK: Symbol { @ CHECK: Name: alias_arm_func @ CHECK: Value: 0x1 @@ -109,6 +107,16 @@ beta: @ CHECK: Type: Function @ CHECK: } +@ CHECK: Symbol { +@ CHECK: Name: badblood +@ CHECK-NEXT: Value: 0x0 +@ CHECK-NEXT: Size: 0 +@ CHECK-NEXT: Binding: Local +@ CHECK-NEXT: Type: Object +@ CHECK-NEXT: Other: 0 +@ CHECK-NEXT: Section: .data +@ CHECK-NEXT: } + @ CHECK: Symbol { @ CHECK: Name: bedazzle @ CHECK: Value: 0x4 @@ -144,16 +152,3 @@ beta: @ CHECK: Value: 0x5 @ CHECK: Type: Function @ CHECK: } - -@ CHECK: Symbol { -@ CHECK: Name: badblood -@ CHECK: Value: 0x0 -@ CHECK: Type: Object -@ CHECK: } - -@ CHECK: Symbol { -@ CHECK: Name: undefined -@ CHECK: Value: 0x0 -@ CHECK: Type: None -@ CHECK: } - |

