diff options
-rw-r--r-- | lib/MC/MCAsmStreamer.cpp | 9 | ||||
-rw-r--r-- | lib/MC/MCParser/AsmParser.cpp | 8 | ||||
-rw-r--r-- | test/MC/AsmParser/directive_tbss.s | 2 |
3 files changed, 7 insertions, 12 deletions
diff --git a/lib/MC/MCAsmStreamer.cpp b/lib/MC/MCAsmStreamer.cpp index 62735ad3f3..4f7699ca99 100644 --- a/lib/MC/MCAsmStreamer.cpp +++ b/lib/MC/MCAsmStreamer.cpp @@ -363,14 +363,13 @@ void MCAsmStreamer::EmitZerofill(const MCSection *Section, MCSymbol *Symbol, EmitEOL(); } -// .tbss sym$tlv$init, size, align +// .tbss sym, size, align +// This depends that the symbol has already been mangled from the original, +// e.g. _a. void MCAsmStreamer::EmitTBSSSymbol(MCSymbol *Symbol, uint64_t Size, unsigned ByteAlignment) { assert(Symbol != NULL && "Symbol shouldn't be NULL!"); - OS << ".tbss "; - - // This is a mach-o specific directive and the name requires some mangling. - OS << *Symbol << "$tlv$init, " << Size; + OS << ".tbss " << *Symbol << ", " << Size; // Output align if we have it. if (ByteAlignment != 0) OS << ", " << Log2_32(ByteAlignment); diff --git a/lib/MC/MCParser/AsmParser.cpp b/lib/MC/MCParser/AsmParser.cpp index 18977de8ad..e5af357de3 100644 --- a/lib/MC/MCParser/AsmParser.cpp +++ b/lib/MC/MCParser/AsmParser.cpp @@ -1436,13 +1436,9 @@ bool AsmParser::ParseDirectiveDarwinTBSS() { StringRef Name; if (ParseIdentifier(Name)) return TokError("expected identifier in directive"); - - // Demangle the name output. The trailing characters are guaranteed to be - // $tlv$init so just strip that off. - StringRef DemName = Name.substr(0, Name.size() - strlen("$tlv$init")); - + // Handle the identifier as the key symbol. - MCSymbol *Sym = CreateSymbol(DemName); + MCSymbol *Sym = CreateSymbol(Name); if (Lexer.isNot(AsmToken::Comma)) return TokError("unexpected token in directive"); diff --git a/test/MC/AsmParser/directive_tbss.s b/test/MC/AsmParser/directive_tbss.s index 01ba17be26..38d3a3e1fc 100644 --- a/test/MC/AsmParser/directive_tbss.s +++ b/test/MC/AsmParser/directive_tbss.s @@ -1,4 +1,4 @@ -# RUN: llvm-mc -triple i386-unknown-unknown %s | FileCheck %s +# RUN: llvm-mc -triple i386-unknown-darwin %s | FileCheck %s # CHECK: .tbss _a$tlv$init, 4 # CHECK: .tbss _b$tlv$init, 4, 3 |