mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-07-23 14:25:07 +00:00
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
This commit is contained in:
7
test/MC/ELF/bad-relocation.s
Normal file
7
test/MC/ELF/bad-relocation.s
Normal file
@@ -0,0 +1,7 @@
|
||||
// RUN: not llvm-mc -filetype=obj -triple i386-pc-linux-gnu %s -o /dev/null 2>&1 | FileCheck %s
|
||||
|
||||
// CHECK: error: invalid variant 'BADRELOC'
|
||||
|
||||
.text
|
||||
foo:
|
||||
leal .Lfoo@BADRELOC(%ebx), %eax
|
12
test/MC/ELF/symbol-names.s
Normal file
12
test/MC/ELF/symbol-names.s
Normal file
@@ -0,0 +1,12 @@
|
||||
// RUN: llvm-mc -triple i686-pc-linux -filetype=obj %s -o - | llvm-readobj -t | FileCheck %s
|
||||
|
||||
// MC allows ?'s in symbol names as an extension.
|
||||
|
||||
.text
|
||||
.globl foo?bar
|
||||
.type foo?bar, @function
|
||||
foo?bar:
|
||||
ret
|
||||
|
||||
// CHECK: Symbol
|
||||
// CHECK: Name: foo?bar
|
Reference in New Issue
Block a user