MC asm parser: allow ?'s in symbol names, and handle @'s in names in MS asm
authorHans Wennborg <hans@hanshq.net>
Fri, 18 Oct 2013 20:46:28 +0000 (20:46 +0000)
committerHans Wennborg <hans@hanshq.net>
Fri, 18 Oct 2013 20:46:28 +0000 (20:46 +0000)
commit22f9dd4591e8af6d6feed10a4b6e11a784582edc
treec95ba0547f40c0a5129e40d5e7716867351767f7
parent2d8a1d677c81c8e05d1dbc7832e1ced10cfc629a
MC asm parser: allow ?'s in symbol names, and handle @'s in names in MS asm

This is another (final?) stab at making us able to parse our own asm output
on Windows.

Symbols on Windows often contain @'s and ?'s in their names. Our asm parser
didn't like this. ?'s were not allowed, and @'s were intepreted as trying to
reference PLT/GOT/etc.

We can't just add quotes around the bad names, since e.g. for MinGW, we use gas
to assemble, and it doesn't like quotes in some places (notably in .def
directives).

This commit makes us allow ?'s in symbol names, and @'s in symbol names for MS
assembly.

Differential Revision: http://llvm-reviews.chandlerc.com/D1978

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193000 91177308-0d34-0410-b5e6-96231b3b80d8
include/llvm/MC/MCAsmInfo.h
lib/MC/MCAsmInfo.cpp
lib/MC/MCParser/AsmLexer.cpp
lib/MC/MCParser/AsmParser.cpp
lib/Target/X86/MCTargetDesc/X86MCAsmInfo.cpp
test/MC/COFF/tricky-names.ll [new file with mode: 0644]
test/MC/ELF/bad-relocation.s [new file with mode: 0644]
test/MC/ELF/symbol-names.s [new file with mode: 0644]