mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-12-15 04:30:12 +00:00
d05b93515d
The integrated assembler fails to properly lex arm comments when they are adjacent to an identifier in the input stream. The reason is that the arm comment symbol '@' is also used as symbol variant in other assembly languages so when lexing an identifier it allows the '@' symbol as part of the identifier. Example: $ cat comment.s foo: add r0, r0@got to parse this as a comment $ llvm-mc -triple armv7 comment.s comment.s:4:18: error: unexpected token in argument list add r0, r0@got to parse this as a comment ^ This should be parsed as correctly as `add r0, r0`. This commit modifes the assembly lexer to not include the '@' symbol in identifiers when lexing for targets that use '@' for comments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@196607 91177308-0d34-0410-b5e6-96231b3b80d8
25 lines
559 B
ArmAsm
25 lines
559 B
ArmAsm
@ Tests to check that '@' does not get lexed as an identifier for arm
|
|
@ RUN: llvm-mc %s -triple=armv7-linux-gnueabi | FileCheck %s
|
|
@ RUN: llvm-mc %s -triple=armv7-linux-gnueabi 2>&1 | FileCheck %s --check-prefix=ERROR
|
|
|
|
foo:
|
|
bl boo@plt should be ignored
|
|
bl goo@plt
|
|
.long bar@got to parse this as a comment
|
|
.long baz@got
|
|
add r0, r0@ignore this extra junk
|
|
|
|
@CHECK-LABEL: foo:
|
|
@CHECK: bl boo
|
|
@CHECK-NOT: @
|
|
@CHECK: bl goo
|
|
@CHECK-NOT: @
|
|
@CHECK: .long bar
|
|
@CHECK-NOT: @
|
|
@CHECK: .long baz
|
|
@CHECK-NOT: @
|
|
@CHECK: add r0, r0
|
|
@CHECK-NOT: @
|
|
|
|
@ERROR-NOT: error:
|