MC: Reorganize macro MC test along dialect lines
[oota-llvm.git] / test / MC / AsmParser / macros-darwin.s
1 // RUN: not llvm-mc -triple i386-apple-darwin10 %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 // CHECK: .byte 10
26 test2 10
27
28 .macro test3
29 .globl "$0 $1 $2 $$3 $n"
30 .endmacro
31
32 // CHECK: .globl "1 23  $3 2"
33 test3 1, 2 3
34
35 // CHECK: .globl        "1 (23)  $3 2"
36 test3 1, (2 3)
37
38 // CHECK: .globl "12  $3 1"
39 test3 1 2
40
41 .macro test4
42 .globl "$0 -- $1"
43 .endmacro
44
45 // CHECK: .globl  "(ab)(,)) -- (cd)"
46 test4 (a b)(,)),(cd)
47
48 // CHECK: .globl  "(ab)(,)) -- (cd)"
49 test4 (a b)(,)),(cd)
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 .globl "\_a,\_b,\_c"
74 .endmacro
75
76 .macro test9 _a _b _c
77 .globl "\_a \_b \_c"
78 .endmacro
79
80 // CHECK: .globl  "a,b,c"
81 test8 a, b, c
82 // CHECK: .globl  "%1,%2,%3"
83 test8 %1, %2, %3 #a comment
84 // CHECK: .globl "x-y,z,1"
85 test8 x - y, z, 1
86 // CHECK: .globl  "1 2 3"
87 test9 1, 2,3
88
89 test8 1,2 3
90 // CHECK-ERRORS: error: macro argument '_c' is missing
91 // CHECK-ERRORS-NEXT: test8 1,2 3
92 // CHECK-ERRORS-NEXT:           ^
93
94 test8 1 2, 3
95 // CHECK-ERRORS: error: macro argument '_c' is missing
96 // CHECK-ERRORS-NEXT:test8 1 2, 3
97 // CHECK-ERRORS-NEXT:           ^