1 # RUN: llvm-mc -triple i386-linux-gnu %s| FileCheck %s 2 3 # This test checks the altmacro string delimiter '<' and '>'. 4 5 .altmacro 6 7 # Test #1: 8 # You can delimit strings with matching angle brackets '<' '>'. 9 # If an argument begins with '<' and ends with '>'. 10 # The argument is considered as a string. 11 12 # CHECK: simpleCheck: 13 .macro simple_check_0 name 14 \name: 15 addl $5,%eax 16 .endm 17 18 simple_check_0 <simpleCheck> 19 20 # Test #2: 21 # Except adding new string marks '<..>', a regular macro behavior is expected. 22 23 # CHECK: simpleCheck0: 24 # CHECK: addl $0, %eax 25 .macro concat string1 string2 string3 26 \string1\string2\string3: 27 addl $\string3, %eax 28 .endm 29 30 concat <simple>,<Check>,<0> 31 32 # Test #3: 33 # The altmacro cannot affect the regular less/greater behavior. 34 35 # CHECK: addl $-1, %eax 36 # CHECK: addl $0, %eax 37 38 .macro fun3 arg1 arg2 39 addl $\arg1,%eax 40 addl $\arg2,%eax 41 .endm 42 43 fun3 5<6 , 5>8 44 45 # Test #4: 46 # If a comma is present inside an angle brackets, 47 # the comma considered as a character and not as a separator. 48 # This check checks the ability to split the string to different 49 # arguments according to the use of the comma. 50 # Fun2 sees the comma as a character. 51 # Fun3 sees the comma as a separator. 52 53 # CHECK: addl $5, %eax 54 # CHECK: addl $6, %eax 55 .macro fun2 arg 56 fun3 \arg 57 .endm 58 59 fun2 <5,6> 60 61 # Test #5: 62 # If argument begin with '<' and there is no '>' to close it. 63 # A regular macro behavior is expected. 64 65 # CHECK: addl $4, %eax 66 .macro fun4 arg1 arg2 67 .if \arg2\arg1 68 addl $\arg2,%eax 69 .endif 70 .endm 71 72 fun4 <5,4 73 .noaltmacro 74