136b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines@ Tests to check that '@' does not get lexed as an identifier for arm
236b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines@ RUN: llvm-mc %s -triple=armv7-linux-gnueabi  | FileCheck %s
336b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines@ RUN: llvm-mc %s -triple=armv7-linux-gnueabi 2>&1 | FileCheck %s --check-prefix=ERROR
436b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines
536b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hinesfoo:
636b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  bl boo@plt should be ignored
736b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  bl goo@plt
836b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  .long bar@got to parse this as a comment
936b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  .long baz@got
1036b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  add r0, r0@ignore this extra junk
1136b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines
1236b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines@ the symver directive should allow @ in the second symbol name
1336b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hinesdefined1:
1436b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hinesdefined2:
1536b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hinesdefined3:
1636b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hinesbar:
1736b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  .symver defined1, bar1@zed
1836b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  .symver defined2, bar3@@zed
1936b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  .symver defined3, bar5@@@zed
2036b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines
2136b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hinesfar:
2236b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines  .long baz@got
2336b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines
2436b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines@CHECK-LABEL: foo:
2536b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines@CHECK: bl boo
2636b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines@CHECK-NOT: @
2736b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines@CHECK: bl goo
2836b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines@CHECK-NOT: @
2936b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines@CHECK: .long bar
3036b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines@CHECK-NOT: @
3136b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines@CHECK: .long baz
3236b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines@CHECK-NOT: @
3336b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines@CHECK: add r0, r0
3436b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines@CHECK-NOT: @
3536b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines
3636b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines@CHECK-LABEL: bar:
3736b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines@CHECK: bar1@zed = defined1
3836b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines@CHECK: bar3@@zed = defined2
3936b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines@CHECK: bar5@@@zed = defined3
4036b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines
4136b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines@ Make sure we did not mess up the parser state and it still lexes
4236b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines@ comments correctly by excluding the @ in normal symbols
4336b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines@CHECK-LABEL: far:
4436b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines@CHECK:  .long baz
4536b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines@CHECK-NOT: @
4636b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines
4736b56886974eae4f9c5ebc96befd3e7bfe5de338Stephen Hines@ERROR-NOT: error:
48