mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-22 18:54:02 +01:00
[MC][test] Reorganize macro tests
* Add locations * Use FileCheck --match-full-lines --strict-whitespace * Use CHECK-NEXT: * Merge related tests * Delete redundant tests * Improve test coverage Differential Revision: https://reviews.llvm.org/D77981
This commit is contained in:
parent
a896ef43f6
commit
6c753fab28
46
test/MC/AsmParser/macro-arg-err.s
Normal file
46
test/MC/AsmParser/macro-arg-err.s
Normal file
@ -0,0 +1,46 @@
|
||||
# RUN: not llvm-mc -triple=x86_64 %s -o /dev/null 2>&1 | FileCheck %s --match-full-lines --strict-whitespace
|
||||
|
||||
# CHECK:{{.*}}.s:[[#@LINE+3]]:22: error: macro 'dup_params' has multiple parameters named 'a'
|
||||
# CHECK-NEXT:.macro dup_params a a
|
||||
# CHECK-NEXT: ^
|
||||
.macro dup_params a a
|
||||
# CHECK:{{.*}}.s:[[#@LINE+3]]:6: error: unexpected '.endm' in file, no current macro definition
|
||||
# CHECK-NEXT:.endm
|
||||
# CHECK-NEXT: ^
|
||||
.endm
|
||||
|
||||
# CHECK-NEXT:{{.*}}.s:[[#@LINE+6]]:14: error: too many positional arguments
|
||||
# CHECK-NEXT:one_arg 42, 42
|
||||
# CHECK-NEXT: ^
|
||||
.macro one_arg bar
|
||||
.long \bar
|
||||
.endm
|
||||
one_arg 42, 42
|
||||
|
||||
# CHECK-NEXT:{{.*}}.s:[[#@LINE+6]]:10: error: Wrong number of arguments
|
||||
# CHECK-NEXT:no_arg 42
|
||||
# CHECK-NEXT: ^
|
||||
.macro no_arg
|
||||
.ascii "$20"
|
||||
.endm
|
||||
no_arg 42
|
||||
|
||||
.macro double first = -1, second = -1
|
||||
.long \first
|
||||
.long \second
|
||||
.endm
|
||||
|
||||
# CHECK-NEXT:{{.*}}.s:[[#@LINE+3]]:14: error: too many positional arguments
|
||||
# CHECK-NEXT:double 0, 1, 2
|
||||
# CHECK-NEXT: ^
|
||||
double 0, 1, 2
|
||||
|
||||
# CHECK-NEXT:{{.*}}.s:[[#@LINE+3]]:20: error: cannot mix positional and keyword arguments
|
||||
# CHECK-NEXT:double second = 1, 2
|
||||
# CHECK-NEXT: ^
|
||||
double second = 1, 2
|
||||
|
||||
# CHECK-NEXT:{{.*}}.s:[[#@LINE+3]]:8: error: parameter named 'third' does not exist for macro 'double'
|
||||
# CHECK-NEXT:double third = 0
|
||||
# CHECK-NEXT: ^
|
||||
double third = 0
|
104
test/MC/AsmParser/macro-arg.s
Normal file
104
test/MC/AsmParser/macro-arg.s
Normal file
@ -0,0 +1,104 @@
|
||||
# RUN: llvm-mc -triple=x86_64 %s | FileCheck %s
|
||||
|
||||
.macro empty, cond
|
||||
.endm
|
||||
empty ne
|
||||
|
||||
# CHECK: .ascii "3 \003"
|
||||
.macro escape a
|
||||
.ascii "\a \\a"
|
||||
.endm
|
||||
escape 3
|
||||
|
||||
.macro double first = -1, second = -1
|
||||
.long \first
|
||||
.long \second
|
||||
.endm
|
||||
|
||||
# CHECK: .long -1
|
||||
# CHECK-NEXT: .long -1
|
||||
# CHECK-EMPTY:
|
||||
double
|
||||
# CHECK: .long -1
|
||||
# CHECK-NEXT: .long -1
|
||||
# CHECK-EMPTY:
|
||||
double ,
|
||||
# CHECK: .long 1
|
||||
# CHECK-NEXT: .long -1
|
||||
double 1
|
||||
# CHECK: .long 2
|
||||
# CHECK-NEXT: .long 3
|
||||
double 2, 3
|
||||
# CHECK: .long -1
|
||||
# CHECK-NEXT: .long 4
|
||||
double , 4
|
||||
# CHECK: .long 5
|
||||
# CHECK-NEXT: .long 6
|
||||
double 5, second = 6
|
||||
# CHECK: .long 7
|
||||
# CHECK-NEXT: .long -1
|
||||
double first = 7
|
||||
# CHECK: .long -1
|
||||
# CHECK-NEXT: .long 8
|
||||
double second = 8
|
||||
# CHECK: .long 10
|
||||
# CHECK-NEXT: .long 9
|
||||
double second = 9, first = 10
|
||||
# CHECK: .long second+11
|
||||
# CHECK-NEXT: .long -1
|
||||
double second + 11
|
||||
# CHECK: .long -1
|
||||
# CHECK-NEXT: .long second+12
|
||||
double , second + 12
|
||||
# CHECK: .long second
|
||||
# CHECK-NEXT: .long -1
|
||||
double second
|
||||
|
||||
.macro mixed arg0 = 0, arg1 = 1 arg2 = 2, arg3 = 3
|
||||
.long \arg0
|
||||
.long \arg1
|
||||
.long \arg2
|
||||
.long \arg3
|
||||
.endm
|
||||
|
||||
# CHECK: .long 1
|
||||
# CHECK-NEXT: .long 2
|
||||
# CHECK-NEXT: .long 3
|
||||
# CHECK-NEXT: .long 3
|
||||
mixed 1, 2 3
|
||||
|
||||
# CHECK: .long 1
|
||||
# CHECK-NEXT: .long 2
|
||||
# CHECK-NEXT: .long 3
|
||||
# CHECK-NEXT: .long 3
|
||||
mixed 1 2, 3
|
||||
|
||||
# CHECK: .long 1
|
||||
# CHECK-NEXT: .long 2
|
||||
# CHECK-NEXT: .long 3
|
||||
# CHECK-NEXT: .long 4
|
||||
mixed 1 2, 3 4
|
||||
|
||||
.macro ascii3 _a _b _c
|
||||
.ascii "\_a|\_b|\_c"
|
||||
.endm
|
||||
|
||||
## 3 arguments.
|
||||
# CHECK: .ascii "a|b|c"
|
||||
ascii3 a, b, c
|
||||
# CHECK: .ascii "%1|%2|%3"
|
||||
ascii3 %1 %2 %3
|
||||
# CHECK: .ascii "1|2|3"
|
||||
ascii3 1, 2,3
|
||||
# CHECK: .ascii "1|2|3"
|
||||
ascii3 1,2 3
|
||||
# CHECK: .ascii "1|2|3"
|
||||
ascii3 1 2, 3
|
||||
# CHECK: .ascii "x-y|z|1"
|
||||
ascii3 x - y z 1
|
||||
|
||||
## 2 arguments.
|
||||
# CHECK: .ascii "1|(2 3)|"
|
||||
ascii3 1, (2 3)
|
||||
# CHECK: .ascii "1|(2 3)|"
|
||||
ascii3 1 (2 3)
|
13
test/MC/AsmParser/macro-def-in-instantiation-darwin.s
Normal file
13
test/MC/AsmParser/macro-def-in-instantiation-darwin.s
Normal file
@ -0,0 +1,13 @@
|
||||
# RUN: llvm-mc -triple=x86_64-apple-darwin10 %s | FileCheck %s
|
||||
|
||||
.macro .make_macro
|
||||
$0 $1
|
||||
$2 $3
|
||||
$4
|
||||
.endmacro
|
||||
|
||||
.make_macro .macro,.mybyte,.byte,$0,.endmacro
|
||||
|
||||
.data
|
||||
# CHECK: .byte 10
|
||||
.mybyte 10
|
@ -1,33 +1,30 @@
|
||||
// RUN: llvm-mc -triple x86_64-apple-darwin10 %s | FileCheck %s
|
||||
# RUN: llvm-mc -triple=x86_64 %s | FileCheck %s
|
||||
# RUN: llvm-mc -triple=x86_64-apple-darwin10 %s | FileCheck %s
|
||||
|
||||
.macro .make_macro
|
||||
$0 $1
|
||||
$2 $3
|
||||
$4
|
||||
.endmacro
|
||||
.macro make_macro a, b, c ,d ,e, f
|
||||
\a \b \c
|
||||
\d \e
|
||||
\f
|
||||
.endm
|
||||
make_macro .macro,mybyte,a,.byte,\a,.endm
|
||||
# CHECK: .byte 42
|
||||
mybyte 42
|
||||
|
||||
.make_macro .macro,.mybyte,.byte,$0,.endmacro
|
||||
|
||||
.data
|
||||
// CHECK: .byte 10
|
||||
.mybyte 10
|
||||
|
||||
// PR18599
|
||||
# PR18599
|
||||
.macro macro_a
|
||||
.macro macro_b
|
||||
.byte 10
|
||||
.macro macro_c
|
||||
.endm
|
||||
|
||||
.macro macro_b
|
||||
.byte 10
|
||||
.macro macro_c
|
||||
.endm
|
||||
|
||||
macro_c
|
||||
.purgem macro_c
|
||||
.endm
|
||||
|
||||
macro_b
|
||||
macro_c
|
||||
.purgem macro_c
|
||||
.endm
|
||||
|
||||
macro_b
|
||||
.endm
|
||||
|
||||
# CHECK: .byte 10
|
||||
# CHECK: .byte 10
|
||||
macro_a
|
||||
macro_b
|
||||
// CHECK: .byte 10
|
||||
// CHECK: .byte 10
|
||||
|
@ -1,8 +0,0 @@
|
||||
// REQUIRES: default_triple
|
||||
// RUN: not llvm-mc %s 2> %t
|
||||
// RUN: FileCheck < %t %s
|
||||
|
||||
.macro M a a
|
||||
.endm
|
||||
|
||||
// CHECK: macro 'M' has multiple parameters named 'a'
|
@ -1,10 +0,0 @@
|
||||
// RUN: not llvm-mc -triple x86_64-unknown-unknown %s 2> %t
|
||||
// RUN: FileCheck < %t %s
|
||||
|
||||
.macro foo bar
|
||||
.long \bar
|
||||
.endm
|
||||
|
||||
foo 42, 42
|
||||
|
||||
// CHECK: too many positional arguments
|
@ -1,64 +0,0 @@
|
||||
# RUN: not llvm-mc -triple i386 -o /dev/null %s 2>&1 | FileCheck %s
|
||||
|
||||
.macro missing_qualifier parameter:
|
||||
|
||||
# CHECK: error: missing parameter qualifier for 'parameter' in macro 'missing_qualifier'
|
||||
# CHECK: .macro missing_qualifier parameter:
|
||||
# CHECK: ^
|
||||
|
||||
.macro non_identifier_qualifier parameter:0
|
||||
|
||||
# CHECK: error: missing parameter qualifier for 'parameter' in macro 'non_identifier_qualifier'
|
||||
# CHECK: .macro non_identifier_qualifier parameter:0
|
||||
# CHECK: ^
|
||||
|
||||
.macro invalid_qualifier parameter:invalid_qualifier
|
||||
|
||||
# CHECK: error: invalid_qualifier is not a valid parameter qualifier for 'parameter' in macro 'invalid_qualifier'
|
||||
# CHECK: .macro invalid_qualifier parameter:invalid_qualifier
|
||||
# CHECK: ^
|
||||
|
||||
.macro pointless_default parameter:req=default
|
||||
.endm
|
||||
|
||||
# CHECK: warning: pointless default value for required parameter 'parameter' in macro 'pointless_default'
|
||||
# CHECK: .macro pointless_default parameter:req=default
|
||||
# CHECK: ^
|
||||
|
||||
.macro missing_required_parameter parameter:req
|
||||
.endm
|
||||
|
||||
missing_required_parameter
|
||||
|
||||
# CHECK: error: missing value for required parameter 'parameter' in macro 'missing_required_parameter'
|
||||
# CHECK: missing_required_parameter
|
||||
# CHECK: ^
|
||||
|
||||
.macro missing_second_required_argument first=0 second:req
|
||||
.endm
|
||||
|
||||
missing_second_required_argument
|
||||
|
||||
# CHECK: error: missing value for required parameter 'second' in macro 'missing_second_required_argument'
|
||||
# CHECK: missing_second_required_argument
|
||||
# CHECK: ^
|
||||
|
||||
.macro second_third_required first=0 second:req third:req
|
||||
.endm
|
||||
|
||||
second_third_required 0
|
||||
|
||||
# CHECK: error: missing value for required parameter 'second' in macro 'second_third_required'
|
||||
# CHECK: second_third_required 0
|
||||
# CHECK: ^
|
||||
|
||||
# CHECK: error: missing value for required parameter 'third' in macro 'second_third_required'
|
||||
# CHECK: second_third_required 0
|
||||
# CHECK: ^
|
||||
|
||||
second_third_required third=3 first=1
|
||||
|
||||
# CHECK: error: missing value for required parameter 'second' in macro 'second_third_required'
|
||||
# CHECK: second_third_required third=3 first=1
|
||||
# CHECK: ^
|
||||
|
51
test/MC/AsmParser/macro-required-argument-err.s
Normal file
51
test/MC/AsmParser/macro-required-argument-err.s
Normal file
@ -0,0 +1,51 @@
|
||||
# RUN: not llvm-mc -triple=x86_64 %s -o /dev/null 2>&1 | FileCheck %s --match-full-lines --strict-whitespace
|
||||
|
||||
# CHECK:{{.*}}.s:[[#@LINE+3]]:36: error: missing parameter qualifier for 'parameter' in macro 'missing_qualifier'
|
||||
# CHECK-NEXT:.macro missing_qualifier parameter:
|
||||
# CHECK-NEXT: ^
|
||||
.macro missing_qualifier parameter:
|
||||
|
||||
# CHECK-NEXT:{{.*}}.s:[[#@LINE+3]]:43: error: missing parameter qualifier for 'parameter' in macro 'non_identifier_qualifier'
|
||||
# CHECK-NEXT:.macro non_identifier_qualifier parameter:0
|
||||
# CHECK-NEXT: ^
|
||||
.macro non_identifier_qualifier parameter:0
|
||||
|
||||
# CHECK-NEXT:{{.*}}.s:[[#@LINE+3]]:36: error: invalid_qualifier is not a valid parameter qualifier for 'parameter' in macro 'invalid_qualifier'
|
||||
# CHECK-NEXT:.macro invalid_qualifier parameter:invalid_qualifier
|
||||
# CHECK-NEXT: ^
|
||||
.macro invalid_qualifier parameter:invalid_qualifier
|
||||
|
||||
# CHECK-NEXT:{{.*}}.s:[[#@LINE+3]]:40: warning: pointless default value for required parameter 'parameter' in macro 'pointless_default'
|
||||
# CHECK-NEXT:.macro pointless_default parameter:req=default
|
||||
# CHECK-NEXT: ^
|
||||
.macro pointless_default parameter:req=default
|
||||
.endm
|
||||
|
||||
# CHECK-NEXT:{{.*}}.s:[[#@LINE+5]]:17: error: missing value for required parameter 'parameter' in macro 'missing_required'
|
||||
# CHECK-NEXT:missing_required
|
||||
# CHECK-NEXT: ^
|
||||
.macro missing_required parameter:req
|
||||
.endm
|
||||
missing_required
|
||||
|
||||
# CHECK-NEXT:{{.*}}.s:[[#@LINE+5]]:24: error: missing value for required parameter 'second' in macro 'missing_second_required'
|
||||
# CHECK-NEXT:missing_second_required
|
||||
# CHECK-NEXT: ^
|
||||
.macro missing_second_required first=0 second:req
|
||||
.endm
|
||||
missing_second_required
|
||||
|
||||
# CHECK-NEXT:{{.*}}.s:[[#@LINE+8]]:24: error: missing value for required parameter 'second' in macro 'second_third_required'
|
||||
# CHECK-NEXT:second_third_required 0
|
||||
# CHECK-NEXT: ^
|
||||
# CHECK-NEXT:{{.*}}.s:[[#@LINE+5]]:24: error: missing value for required parameter 'third' in macro 'second_third_required'
|
||||
# CHECK-NEXT:second_third_required 0
|
||||
# CHECK-NEXT: ^
|
||||
.macro second_third_required first=0 second:req third:req
|
||||
.endm
|
||||
second_third_required 0
|
||||
|
||||
# CHECK-NEXT:{{.*}}.s:[[#@LINE+3]]:38: error: missing value for required parameter 'second' in macro 'second_third_required'
|
||||
# CHECK-NEXT:second_third_required third=3 first=1
|
||||
# CHECK-NEXT: ^
|
||||
second_third_required third=3 first=1
|
19
test/MC/AsmParser/macro-unknown-directive.s
Normal file
19
test/MC/AsmParser/macro-unknown-directive.s
Normal file
@ -0,0 +1,19 @@
|
||||
# RUN: not llvm-mc -triple x86_64 %s -o /dev/null 2>&1 | FileCheck %s --match-full-lines --strict-whitespace
|
||||
|
||||
# CHECK:<instantiation>:1:1: error: unknown directive
|
||||
# CHECK-NEXT:.macrobody0
|
||||
# CHECK-NEXT:^
|
||||
# CHECK-NEXT:<instantiation>:1:1: note: while in macro instantiation
|
||||
# CHECK-NEXT:.test0
|
||||
# CHECK-NEXT:^
|
||||
# CHECK-NEXT:{{.*}}.s:[[#@LINE+10]]:1: note: while in macro instantiation
|
||||
# CHECK-NEXT:.test1
|
||||
# CHECK-NEXT:^
|
||||
.macro .test0
|
||||
.macrobody0
|
||||
.endm
|
||||
.macro .test1
|
||||
.test0
|
||||
.endm
|
||||
|
||||
.test1
|
@ -1,24 +0,0 @@
|
||||
# RUN: not llvm-mc -triple i386 -filetype asm -o /dev/null %s 2>&1 | FileCheck %s
|
||||
|
||||
.macro double first = -1, second = -1
|
||||
# begin entry
|
||||
.long \first
|
||||
.long \second
|
||||
# end entry
|
||||
.endm
|
||||
|
||||
double 0, 1, 2
|
||||
# CHECK: error: too many positional arguments
|
||||
# CHECK: double 0, 1, 2
|
||||
# CHECK: ^
|
||||
|
||||
double second = 1, 2
|
||||
# CHECK: error: cannot mix positional and keyword arguments
|
||||
# CHECK: double second = 1, 2
|
||||
# CHECK: ^
|
||||
|
||||
double third = 0
|
||||
# CHECK: error: parameter named 'third' does not exist for macro 'double'
|
||||
# CHECK: double third = 0
|
||||
# CHECK: ^
|
||||
|
@ -1,91 +0,0 @@
|
||||
# RUN: llvm-mc -triple i386 -filetype asm -o - %s | FileCheck %s
|
||||
|
||||
.macro it, cond
|
||||
.endm
|
||||
|
||||
it ne
|
||||
.long 1
|
||||
|
||||
# CHECK: .long 1
|
||||
|
||||
.macro double first = -1, second = -1
|
||||
# begin entry
|
||||
.long \first
|
||||
.long \second
|
||||
# end entry
|
||||
.endm
|
||||
|
||||
double
|
||||
# CHECK: .long -1
|
||||
# CHECK: .long -1
|
||||
|
||||
double 1
|
||||
# CHECK: .long 1
|
||||
# CHECK: .long -1
|
||||
|
||||
double 2, 3
|
||||
# CHECK: .long 2
|
||||
# CHECK: .long 3
|
||||
|
||||
double , 4
|
||||
# CHECK: .long -1
|
||||
# CHECK: .long 4
|
||||
|
||||
double 5, second = 6
|
||||
# CHECK: .long 5
|
||||
# CHECK: .long 6
|
||||
|
||||
double first = 7
|
||||
# CHECK: .long 7
|
||||
# CHECK: .long -1
|
||||
|
||||
double second = 8
|
||||
# CHECK: .long -1
|
||||
# CHECK: .long 8
|
||||
|
||||
double second = 9, first = 10
|
||||
# CHECK: .long 10
|
||||
# CHECK: .long 9
|
||||
|
||||
double second + 11
|
||||
# CHECK: .long second+11
|
||||
# CHECK: .long -1
|
||||
|
||||
double , second + 12
|
||||
# CHECK: .long -1
|
||||
# CHECK: .long second+12
|
||||
|
||||
double second
|
||||
# CHECK: .long second
|
||||
# CHECK: .long -1
|
||||
|
||||
.macro mixed arg0 = 0, arg1 = 1 arg2 = 2, arg3 = 3
|
||||
# begin entry
|
||||
.long \arg0
|
||||
.long \arg1
|
||||
.long \arg2
|
||||
.long \arg3
|
||||
# end entry
|
||||
.endm
|
||||
|
||||
mixed 1, 2 3
|
||||
|
||||
# CHECK: .long 1
|
||||
# CHECK: .long 2
|
||||
# CHECK: .long 3
|
||||
# CHECK: .long 3
|
||||
|
||||
mixed 1 2, 3
|
||||
|
||||
# CHECK: .long 1
|
||||
# CHECK: .long 2
|
||||
# CHECK: .long 3
|
||||
# CHECK: .long 3
|
||||
|
||||
mixed 1 2, 3 4
|
||||
|
||||
# CHECK: .long 1
|
||||
# CHECK: .long 2
|
||||
# CHECK: .long 3
|
||||
# CHECK: .long 4
|
||||
|
@ -1,105 +0,0 @@
|
||||
// RUN: not llvm-mc -triple i386-linux-gnu %s 2> %t.err | FileCheck %s
|
||||
// RUN: FileCheck --check-prefix=CHECK-ERRORS %s < %t.err
|
||||
|
||||
.macro .test0
|
||||
.macrobody0
|
||||
.endm
|
||||
.macro .test1
|
||||
.test0
|
||||
.endm
|
||||
|
||||
.test1
|
||||
// CHECK-ERRORS: <instantiation>:1:1: error: unknown directive
|
||||
// CHECK-ERRORS-NEXT: macrobody0
|
||||
// CHECK-ERRORS-NEXT: ^
|
||||
// CHECK-ERRORS: <instantiation>:1:1: note: while in macro instantiation
|
||||
// CHECK-ERRORS-NEXT: .test0
|
||||
// CHECK-ERRORS-NEXT: ^
|
||||
// CHECK-ERRORS: 11:1: note: while in macro instantiation
|
||||
// CHECK-ERRORS-NEXT: .test1
|
||||
// CHECK-ERRORS-NEXT: ^
|
||||
|
||||
.macro test2 _a
|
||||
.byte \_a
|
||||
.endm
|
||||
// CHECK: .byte 10
|
||||
test2 10
|
||||
|
||||
.macro test3 _a _b _c
|
||||
.ascii "\_a \_b \_c \\_c"
|
||||
.endm
|
||||
|
||||
// CHECK: .ascii "1 2 3 \003"
|
||||
test3 1, 2, 3
|
||||
|
||||
// CHECK: .ascii "1 2 3 \003"
|
||||
test3 1, 2 3
|
||||
|
||||
.macro test3_prime _a _b _c
|
||||
.ascii "\_a \_b \_c"
|
||||
.endm
|
||||
|
||||
// CHECK: .ascii "1 (2 3) "
|
||||
test3_prime 1, (2 3)
|
||||
|
||||
// CHECK: .ascii "1 (2 3) "
|
||||
test3_prime 1 (2 3)
|
||||
|
||||
// CHECK: .ascii "1 2 "
|
||||
test3_prime 1 2
|
||||
|
||||
.macro test5 _a
|
||||
.globl \_a
|
||||
.endm
|
||||
|
||||
// CHECK: .globl zed1
|
||||
test5 zed1
|
||||
|
||||
.macro test6 $a
|
||||
.globl \$a
|
||||
.endm
|
||||
|
||||
// CHECK: .globl zed2
|
||||
test6 zed2
|
||||
|
||||
.macro test7 .a
|
||||
.globl \.a
|
||||
.endm
|
||||
|
||||
// CHECK: .globl zed3
|
||||
test7 zed3
|
||||
|
||||
.macro test8 _a, _b, _c
|
||||
.ascii "\_a,\_b,\_c"
|
||||
.endm
|
||||
|
||||
.macro test9 _a _b _c
|
||||
.ascii "\_a \_b \_c"
|
||||
.endm
|
||||
|
||||
// CHECK: .ascii "a,b,c"
|
||||
test8 a, b, c
|
||||
// CHECK: .ascii "%1,%2,%3"
|
||||
test8 %1 %2 %3 #a comment
|
||||
// CHECK: .ascii "x-y,z,1"
|
||||
test8 x - y z 1
|
||||
// CHECK: .ascii "1 2 3"
|
||||
test9 1, 2,3
|
||||
|
||||
// CHECK: .ascii "1,2,3"
|
||||
test8 1,2 3
|
||||
|
||||
// CHECK: .ascii "1,2,3"
|
||||
test8 1 2, 3
|
||||
|
||||
.macro test10
|
||||
.ascii "$20"
|
||||
.endm
|
||||
|
||||
test10
|
||||
// CHECK: .ascii "$20"
|
||||
|
||||
test10 42
|
||||
// CHECK-ERRORS: 102:10: error: Wrong number of arguments
|
||||
// CHECK-ERRORS-NEXT: test10 42
|
||||
// CHECK-ERRORS-NEXT: ^
|
30
test/MC/AsmParser/macros-off.s
Normal file
30
test/MC/AsmParser/macros-off.s
Normal file
@ -0,0 +1,30 @@
|
||||
# RUN: not llvm-mc -triple x86_64 %s -o /dev/null 2>&1 | FileCheck %s --match-full-lines --strict-whitespace
|
||||
# RUN: not llvm-mc -triple x86_64-apple-darwin10 %s -o /dev/null 2>&1 | FileCheck %s --match-full-lines --strict-whitespace
|
||||
|
||||
.macro .test0
|
||||
.endmacro
|
||||
|
||||
.macros_off
|
||||
# CHECK:{{.*}}.s:[[#@LINE+3]]:1: error: unknown directive
|
||||
# CHECK-NEXT:.test0
|
||||
# CHECK-NEXT:^
|
||||
.test0
|
||||
.macros_on
|
||||
|
||||
.test0
|
||||
|
||||
# CHECK-NEXT:{{.*}}.s:[[#@LINE+3]]:1: error: macro '.test0' is already defined
|
||||
# CHECK-NEXT:.macro .test0
|
||||
# CHECK-NEXT:^
|
||||
.macro .test0
|
||||
.endmacro
|
||||
|
||||
# CHECK-NEXT:{{.*}}.s:[[#@LINE+3]]:10: error: unexpected '.endmacro' in file, no current macro definition
|
||||
# CHECK-NEXT:.endmacro
|
||||
# CHECK-NEXT: ^
|
||||
.endmacro
|
||||
|
||||
# CHECK-NEXT:{{.*}}.s:[[#@LINE+3]]:1: error: no matching '.endmacro' in definition
|
||||
# CHECK-NEXT:.macro dummy
|
||||
# CHECK-NEXT:^
|
||||
.macro dummy
|
@ -1,23 +0,0 @@
|
||||
// RUN: not llvm-mc -triple x86_64-apple-darwin10 %s 2> %t.err
|
||||
// RUN: FileCheck --check-prefix=CHECK-ERRORS %s < %t.err
|
||||
|
||||
.macro .test0
|
||||
.endmacro
|
||||
|
||||
.macros_off
|
||||
// CHECK-ERRORS: 9:1: error: unknown directive
|
||||
.test0
|
||||
.macros_on
|
||||
|
||||
.test0
|
||||
|
||||
// CHECK-ERRORS: macro '.test0' is already defined
|
||||
.macro .test0
|
||||
.endmacro
|
||||
|
||||
// CHECK-ERRORS: unexpected '.endmacro' in file
|
||||
.endmacro
|
||||
|
||||
// CHECK-ERRORS: no matching '.endmacro' in definition
|
||||
.macro dummy
|
||||
|
Loading…
Reference in New Issue
Block a user