| // 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 |