This patch starts simplifying the handling of .symver. For now it just moves the responsibility for creating an alias down to the streamer. With that the asm streamer can pass a .symver unchanged, which is nice since gas cannot parse "foo@bar = zed". In a followup I hope to move the handling down to the writer so that we don't need special hacks for avoiding breaking names with @@@ on windows. llvm-svn: 327101
48 lines
1.1 KiB
ArmAsm
48 lines
1.1 KiB
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
|
|
|
|
@ the symver directive should allow @ in the second symbol name
|
|
defined1:
|
|
defined2:
|
|
defined3:
|
|
bar:
|
|
.symver defined1, bar1@zed
|
|
.symver defined2, bar3@@zed
|
|
.symver defined3, bar5@@@zed
|
|
|
|
far:
|
|
.long baz@got
|
|
|
|
@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: @
|
|
|
|
@CHECK-LABEL: bar:
|
|
@CHECK: .symver defined1, bar1@zed
|
|
@CHECK: .symver defined2, bar3@@zed
|
|
@CHECK: .symver defined3, bar5@@@zed
|
|
|
|
@ Make sure we did not mess up the parser state and it still lexes
|
|
@ comments correctly by excluding the @ in normal symbols
|
|
@CHECK-LABEL: far:
|
|
@CHECK: .long baz
|
|
@CHECK-NOT: @
|
|
|
|
@ERROR-NOT: error:
|