Home | History | Annotate | Download | only in AsmParser
      1 // RUN: not llvm-mc -triple i386-unknown-unknown %s 2> %t.err | FileCheck %s
      2 // RUN: FileCheck --check-prefix=CHECK-ERRORS %s < %t.err
      3 
      4 .macro .test0
      5 .macrobody0
      6 .endmacro
      7 .macro .test1
      8 .test0
      9 .endmacro
     10 
     11 .test1
     12 // CHECK-ERRORS: <instantiation>:1:1: error: unknown directive
     13 // CHECK-ERRORS-NEXT: macrobody0
     14 // CHECK-ERRORS-NEXT: ^
     15 // CHECK-ERRORS: <instantiation>:1:1: note: while in macro instantiation
     16 // CHECK-ERRORS-NEXT: .test0
     17 // CHECK-ERRORS-NEXT: ^
     18 // CHECK-ERRORS: 11:1: note: while in macro instantiation
     19 // CHECK-ERRORS-NEXT: .test1
     20 // CHECK-ERRORS-NEXT: ^
     21 
     22 .macro test2
     23 .byte $0
     24 .endmacro
     25 test2 10
     26 
     27 .macro test3
     28 .globl "$0 $1 $2 $$3 $n"
     29 .endmacro
     30 
     31 // CHECK: .globl	"1 (23)  $3 2"
     32 test3 1, (2 3)
     33 
     34 // CHECK: .globl "1 2  $3 2"
     35 test3 1 2
     36 
     37 .macro test4
     38 .globl "$0 -- $1"
     39 .endmacro
     40 
     41 // CHECK: .globl  "(ab)(,)) -- (cd)"
     42 test4 (a b)(,)),(cd)
     43 
     44 // CHECK: .globl  "(ab)(,)) -- (cd)"
     45 test4 (a b)(,)),(cd)
     46 
     47 .macro test5 _a
     48 .globl "\_a"
     49 .endm
     50 
     51 // CHECK: .globl zed1
     52 test5 zed1
     53 
     54 .macro test6 $a
     55 .globl "\$a"
     56 .endm
     57 
     58 // CHECK: .globl zed2
     59 test6 zed2
     60 
     61 .macro test7 .a
     62 .globl "\.a"
     63 .endm
     64 
     65 // CHECK: .globl zed3
     66 test7 zed3
     67 
     68 .macro test8 _a, _b, _c
     69 .globl "\_a,\_b,\_c"
     70 .endmacro
     71 
     72 .macro test9 _a _b _c
     73 .globl "\_a \_b \_c"
     74 .endmacro
     75 
     76 // CHECK: .globl  "a,b,c"
     77 test8 a, b, c
     78 // CHECK: .globl  "%1,%2,%3"
     79 test8 %1 %2 %3 #a comment
     80 // CHECK: .globl "x-y,z,1"
     81 test8 x - y z 1
     82 // CHECK: .globl  "1 2 3"
     83 test9 1, 2,3
     84 
     85 test8 1,2 3
     86 // CHECK-ERRORS: error: macro argument '_c' is missing
     87 // CHECK-ERRORS-NEXT: test8 1,2 3
     88 // CHECK-ERRORS-NEXT:           ^
     89 
     90 test8 1 2, 3
     91 // CHECK-ERRORS: error: expected ' ' for macro argument separator
     92 // CHECK-ERRORS-NEXT:test8 1 2, 3
     93 // CHECK-ERRORS-NEXT:         ^
     94