| // RUN: llvm-mc -triple i386-unknown-unknown %s | FileCheck %s | |
| // .exitm is encountered in a normal macro expansion | |
| .macro REP | |
| .rept 3 | |
| .long 0 | |
| .exitm | |
| .endr | |
| .endm | |
| REP | |
| // Only the output from the first rept expansion should make it through: | |
| // CHECK: .long 0 | |
| // CHECK-NOT: .long 0 | |
| // .exitm is in a true branch | |
| .macro A | |
| .if 1 | |
| .long 1 | |
| .exitm | |
| .endif | |
| .long 1 | |
| .endm | |
| A | |
| // CHECK: .long 1 | |
| // CHECK-NOT: .long 1 | |
| // .exitm is in a false branch | |
| .macro B | |
| .if 1 | |
| .long 2 | |
| .else | |
| .exitm | |
| .endif | |
| .long 2 | |
| .endm | |
| B | |
| // CHECK: .long 2 | |
| // CHECK: .long 2 | |
| // .exitm is in a false branch that is encountered prior to the true branch | |
| .macro C | |
| .if 0 | |
| .exitm | |
| .else | |
| .long 3 | |
| .endif | |
| .long 3 | |
| .endm | |
| C | |
| // CHECK: .long 3 | |
| // CHECK: .long 3 | |
| // .exitm is in a macro that's expanded in a conditional block. | |
| .macro D | |
| .long 4 | |
| .exitm | |
| .long 4 | |
| .endm | |
| .if 1 | |
| D | |
| .endif | |
| // CHECK: .long 4 | |
| // CHECK-NOT: .long 4 |