diff --git a/llvm/lib/MC/MCContext.cpp b/llvm/lib/MC/MCContext.cpp index 41caf20b331b2..f70087e14f702 100644 --- a/llvm/lib/MC/MCContext.cpp +++ b/llvm/lib/MC/MCContext.cpp @@ -212,27 +212,6 @@ MCDataFragment *MCContext::allocInitialFragment(MCSection &Sec) { MCSymbol *MCContext::getOrCreateSymbol(const Twine &Name) { SmallString<128> NameSV; StringRef NameRef = Name.toStringRef(NameSV); - if (NameRef.contains('\\')) { - NameSV = NameRef; - size_t S = 0; - // Support escaped \\ and \" as in GNU Assembler. GAS issues a warning for - // other characters following \\, which we do not implement due to code - // structure. - for (size_t I = 0, E = NameSV.size(); I < E; ++I) { - char C = NameSV[I]; - if (C == '\\') { - switch (NameSV[I + 1]) { - case '"': - case '\\': - C = NameSV[++I]; - break; - } - } - NameSV[S++] = C; - } - NameSV.resize(S); - NameRef = NameSV; - } assert(!NameRef.empty() && "Normal symbols cannot be unnamed!"); diff --git a/llvm/lib/MC/MCSymbol.cpp b/llvm/lib/MC/MCSymbol.cpp index 3ca85b76a35d9..2a709f4aef80c 100644 --- a/llvm/lib/MC/MCSymbol.cpp +++ b/llvm/lib/MC/MCSymbol.cpp @@ -74,8 +74,6 @@ void MCSymbol::print(raw_ostream &OS, const MCAsmInfo *MAI) const { OS << "\\n"; else if (C == '"') OS << "\\\""; - else if (C == '\\') - OS << "\\\\"; else OS << C; } diff --git a/llvm/test/MC/AsmParser/quoted.s b/llvm/test/MC/AsmParser/quoted.s index 710f2d0155f1c..16b0997827603 100644 --- a/llvm/test/MC/AsmParser/quoted.s +++ b/llvm/test/MC/AsmParser/quoted.s @@ -9,9 +9,6 @@ "a b": call "a b" -# CHECK: "a b\\": -"a b\\": - #--- err.s "a\": # ERR: 1:2: error: unterminated string constant diff --git a/llvm/test/MC/COFF/safeseh.s b/llvm/test/MC/COFF/safeseh.s index afcdc771ff994..d21628daff5fa 100644 --- a/llvm/test/MC/COFF/safeseh.s +++ b/llvm/test/MC/COFF/safeseh.s @@ -2,5 +2,5 @@ // check that we quote the output of .safeseh -.safeseh "\\foo" -// CHECK: .safeseh "\\foo" +.safeseh "\01foo" +// CHECK: .safeseh "\01foo" diff --git a/llvm/test/MC/ELF/symbol-names.s b/llvm/test/MC/ELF/symbol-names.s index 427187c329acf..f605c723d4d4d 100644 --- a/llvm/test/MC/ELF/symbol-names.s +++ b/llvm/test/MC/ELF/symbol-names.s @@ -1,28 +1,12 @@ -// RUN: llvm-mc -triple=x86_64 -filetype=obj %s | llvm-objdump -tdr - | FileCheck %s +// RUN: llvm-mc -triple i686-pc-linux -filetype=obj %s -o - | llvm-readobj --symbols - | FileCheck %s // MC allows ?'s in symbol names as an extension. -// CHECK-LABEL:SYMBOL TABLE: -// CHECK-NEXT: 0000000000000001 l F .text 0000000000000000 a"b\{{$}} -// CHECK-NEXT: 0000000000000006 l .text 0000000000000000 a\{{$}} -// CHECK-NEXT: 0000000000000000 g F .text 0000000000000000 foo?bar -// CHECK-NEXT: 0000000000000000 *UND* 0000000000000000 a"b\q{{$}} -// CHECK-EMPTY: - .text .globl foo?bar .type foo?bar, @function foo?bar: ret -// CHECK-LABEL:: -// CHECK-NEXT: callq {{.*}} -// CHECK-LABEL:: -// CHECK-NEXT: callq {{.*}} -// CHECK-NEXT: R_X86_64_PLT32 a"b\q-0x4 -.type "a\"b\\", @function -"a\"b\\": - call "a\"b\\" -"a\\": -/// GAS emits a warning for \q - call "a\"b\q" +// CHECK: Symbol +// CHECK: Name: foo?bar