Home | History | Annotate | Download | only in AsmParser
      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
     10 REP
     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
     23 A
     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
     36 B
     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
     50 C
     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
     61 D
     62 .endif
     63 // CHECK: .long 4
     64 // CHECK-NOT: .long 4
     65