reference, declarationdefinition
definition → references, declarations, derived classes, virtual overrides
reference to multiple definitions → definitions
unreferenced
    1
    2
    3
    4
    5
    6
    7
    8
    9
   10
   11
   12
   13
   14
   15
   16
   17
   18
   19
   20
   21
   22
   23
   24
   25
   26
   27
   28
   29
   30
   31
   32
   33
   34
   35
   36
   37
   38
   39
   40
   41
   42
   43
   44
   45
   46
   47
   48
   49
   50
   51
   52
   53
   54
   55
   56
   57
   58
   59
   60
   61
   62
   63
   64
// 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