Home | History | Annotate | Download | only in AsmParser
      1 // RUN: not llvm-mc -triple i386-linux-gnu %s 2> %t.err | FileCheck %s
      2 // RUN: FileCheck --check-prefix=CHECK-ERRORS %s < %t.err
      3 
      4 .macro .test0
      5 .macrobody0
      6 .endm
      7 .macro .test1
      8 .test0
      9 .endm
     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 _a
     23 .byte \_a
     24 .endm
     25 // CHECK: .byte 10
     26 test2 10
     27 
     28 .macro test3 _a _b _c
     29 .ascii "\_a \_b \_c \\_c"
     30 .endm
     31 
     32 // CHECK: .ascii "1 2 3 \003"
     33 test3 1, 2, 3
     34 
     35 // CHECK: .ascii "1 2 3 \003"
     36 test3 1, 2 3
     37 
     38 .macro test3_prime _a _b _c
     39 .ascii "\_a \_b \_c"
     40 .endm
     41 
     42 // CHECK: .ascii "1 (2 3) "
     43 test3_prime 1, (2 3)
     44 
     45 // CHECK: .ascii "1 (2 3) "
     46 test3_prime 1 (2 3)
     47 
     48 // CHECK: .ascii "1 2 "
     49 test3_prime 1 2
     50 
     51 .macro test5 _a
     52 .globl \_a
     53 .endm
     54 
     55 // CHECK: .globl zed1
     56 test5 zed1
     57 
     58 .macro test6 $a
     59 .globl \$a
     60 .endm
     61 
     62 // CHECK: .globl zed2
     63 test6 zed2
     64 
     65 .macro test7 .a
     66 .globl \.a
     67 .endm
     68 
     69 // CHECK: .globl zed3
     70 test7 zed3
     71 
     72 .macro test8 _a, _b, _c
     73 .ascii "\_a,\_b,\_c"
     74 .endm
     75 
     76 .macro test9 _a _b _c
     77 .ascii "\_a \_b \_c"
     78 .endm
     79 
     80 // CHECK: .ascii "a,b,c"
     81 test8 a, b, c
     82 // CHECK: .ascii "%1,%2,%3"
     83 test8 %1 %2 %3 #a comment
     84 // CHECK: .ascii "x-y,z,1"
     85 test8 x - y z 1
     86 // CHECK: .ascii "1 2 3"
     87 test9 1, 2,3
     88 
     89 // CHECK: .ascii "1,2,3"
     90 test8 1,2 3
     91 
     92 // CHECK: .ascii "1,2,3"
     93 test8 1 2, 3
     94 
     95 .macro test10
     96 .ascii "$20"
     97 .endm
     98 
     99 test10
    100 // CHECK: .ascii "$20"
    101 
    102 test10 42
    103 // CHECK-ERRORS: 102:10: error: Wrong number of arguments
    104 // CHECK-ERRORS-NEXT: test10 42
    105 // CHECK-ERRORS-NEXT: ^
    106