1// RUN: llvm-mc -triple i386-unknown-unknown %s | FileCheck %s
2
3// .exitm is encountered in a normal macro expansion
4.macro REP
5.rept 3
6.long 0
7.exitm
8.endr
9.endm
10REP
11// Only the output from the first rept expansion should make it through:
12// CHECK: .long 0
13// CHECK-NOT: .long 0
14
15// .exitm is in a true branch
16.macro A
17.if 1
18.long 1
19.exitm
20.endif
21.long 1
22.endm
23A
24// CHECK: .long 1
25// CHECK-NOT: .long 1
26
27// .exitm is in a false branch
28.macro B
29.if 1
30.long 2
31.else
32.exitm
33.endif
34.long 2
35.endm
36B
37// CHECK: .long 2
38// CHECK: .long 2
39
40
41// .exitm is in a false branch that is encountered prior to the true branch
42.macro C
43.if 0
44.exitm
45.else
46.long 3
47.endif
48.long 3
49.endm
50C
51// CHECK: .long 3
52// CHECK: .long 3
53
54// .exitm is in a macro that's expanded in a conditional block.
55.macro D
56.long 4
57.exitm
58.long 4
59.endm
60.if 1
61D
62.endif
63// CHECK: .long 4
64// CHECK-NOT: .long 4
65