1
1
//@ only-aarch64
2
2
3
- use std:: arch:: { asm, global_asm } ;
3
+ use std:: arch:: asm;
4
4
5
5
fn main ( ) {
6
6
let mut foo = 0 ;
7
7
let mut bar = 0 ;
8
8
unsafe {
9
- asm ! ( ) ;
10
- //~^ ERROR requires at least a template string argument
11
- asm ! ( foo) ;
12
- //~^ ERROR asm template must be a string literal
13
- asm ! ( "{}" foo) ;
14
- //~^ ERROR expected token: `,`
15
- asm ! ( "{}" , foo) ;
16
- //~^ ERROR expected operand, clobber_abi, options, or additional template string
17
- asm ! ( "{}" , in foo) ;
18
- //~^ ERROR expected `(`, found `foo`
19
- asm ! ( "{}" , in( reg foo) ) ;
20
- //~^ ERROR expected `)`, found `foo`
21
- asm ! ( "{}" , in( reg) ) ;
22
- //~^ ERROR expected expression, found end of macro arguments
23
- asm ! ( "{}" , inout( =) foo => bar) ;
24
- //~^ ERROR expected register class or explicit register
25
- asm ! ( "{}" , inout( reg) foo =>) ;
26
- //~^ ERROR expected expression, found end of macro arguments
27
- asm ! ( "{}" , in( reg) foo => bar) ;
28
- //~^ ERROR expected one of `!`, `,`, `.`, `::`, `?`, `{`, or an operator, found `=>`
29
- asm ! ( "{}" , sym foo + bar) ;
30
- //~^ ERROR expected a path for argument to `sym`
31
- asm ! ( "" , options( foo) ) ;
32
- //~^ ERROR expected one of
33
- asm ! ( "" , options( nomem foo) ) ;
34
- //~^ ERROR expected one of
35
- asm ! ( "" , options( nomem, foo) ) ;
36
- //~^ ERROR expected one of
37
- asm ! ( "{}" , options( ) , const foo) ;
38
- //~^ ERROR attempt to use a non-constant value in a constant
39
- asm ! ( "" , clobber_abi( foo) ) ;
40
- //~^ ERROR expected string literal
41
- asm ! ( "" , clobber_abi( "C" foo) ) ;
42
- //~^ ERROR expected one of `)` or `,`, found `foo`
43
- asm ! ( "" , clobber_abi( "C" , foo) ) ;
44
- //~^ ERROR expected string literal
45
- asm ! ( "{}" , clobber_abi( "C" ) , const foo) ;
46
- //~^ ERROR attempt to use a non-constant value in a constant
47
- asm ! ( "" , options( ) , clobber_abi( "C" ) ) ;
48
- asm ! ( "{}" , options( ) , clobber_abi( "C" ) , const foo) ;
49
- //~^ ERROR attempt to use a non-constant value in a constant
50
- asm ! ( "{a}" , a = const foo, a = const bar) ;
51
- //~^ ERROR duplicate argument named `a`
52
- //~^^ ERROR argument never used
53
- //~^^^ ERROR attempt to use a non-constant value in a constant
54
- //~^^^^ ERROR attempt to use a non-constant value in a constant
55
9
asm ! ( "" , a = in( "x0" ) foo) ;
56
10
//~^ ERROR explicit register arguments cannot have names
57
11
asm ! ( "{a}" , in( "x0" ) foo, a = const bar) ;
@@ -61,64 +15,5 @@ fn main() {
61
15
asm ! ( "{1}" , in( "x0" ) foo, const bar) ;
62
16
//~^ ERROR positional arguments cannot follow named arguments or explicit register arguments
63
17
//~^^ ERROR attempt to use a non-constant value in a constant
64
- asm ! ( "" , options( ) , "" ) ;
65
- //~^ ERROR expected one of
66
- asm ! ( "{}" , in( reg) foo, "{}" , out( reg) foo) ;
67
- //~^ ERROR expected one of
68
- asm ! ( format!( "{{{}}}" , 0 ) , in( reg) foo) ;
69
- //~^ ERROR asm template must be a string literal
70
- asm ! ( "{1}" , format!( "{{{}}}" , 0 ) , in( reg) foo, out( reg) bar) ;
71
- //~^ ERROR asm template must be a string literal
72
- asm ! ( "{}" , in( reg) _) ;
73
- //~^ ERROR _ cannot be used for input operands
74
- asm ! ( "{}" , inout( reg) _) ;
75
- //~^ ERROR _ cannot be used for input operands
76
- asm ! ( "{}" , inlateout( reg) _) ;
77
- //~^ ERROR _ cannot be used for input operands
78
18
}
79
19
}
80
-
81
- const FOO : i32 = 1 ;
82
- const BAR : i32 = 2 ;
83
- global_asm ! ( ) ;
84
- //~^ ERROR requires at least a template string argument
85
- global_asm ! ( FOO ) ;
86
- //~^ ERROR asm template must be a string literal
87
- global_asm ! ( "{}" FOO ) ;
88
- //~^ ERROR expected token: `,`
89
- global_asm ! ( "{}" , FOO ) ;
90
- //~^ ERROR expected operand, options, or additional template string
91
- global_asm ! ( "{}" , const ) ;
92
- //~^ ERROR expected expression, found end of macro arguments
93
- global_asm ! ( "{}" , const ( reg) FOO ) ;
94
- //~^ ERROR expected one of
95
- global_asm ! ( "" , options( FOO ) ) ;
96
- //~^ ERROR expected one of
97
- global_asm ! ( "" , options( nomem FOO ) ) ;
98
- //~^ ERROR expected one of
99
- global_asm ! ( "" , options( nomem, FOO ) ) ;
100
- //~^ ERROR expected one of
101
- global_asm ! ( "{}" , options( ) , const FOO ) ;
102
- global_asm ! ( "" , clobber_abi( FOO ) ) ;
103
- //~^ ERROR expected string literal
104
- global_asm ! ( "" , clobber_abi( "C" FOO ) ) ;
105
- //~^ ERROR expected one of `)` or `,`, found `FOO`
106
- global_asm ! ( "" , clobber_abi( "C" , FOO ) ) ;
107
- //~^ ERROR expected string literal
108
- global_asm ! ( "{}" , clobber_abi( "C" ) , const FOO ) ;
109
- //~^ ERROR `clobber_abi` cannot be used with `global_asm!`
110
- global_asm ! ( "" , options( ) , clobber_abi( "C" ) ) ;
111
- //~^ ERROR `clobber_abi` cannot be used with `global_asm!`
112
- global_asm ! ( "{}" , options( ) , clobber_abi( "C" ) , const FOO ) ;
113
- //~^ ERROR `clobber_abi` cannot be used with `global_asm!`
114
- global_asm ! ( "{a}" , a = const FOO , a = const BAR ) ;
115
- //~^ ERROR duplicate argument named `a`
116
- //~^^ ERROR argument never used
117
- global_asm ! ( "" , options( ) , "" ) ;
118
- //~^ ERROR expected one of
119
- global_asm ! ( "{}" , const FOO , "{}" , const FOO ) ;
120
- //~^ ERROR expected one of
121
- global_asm ! ( format!( "{{{}}}" , 0 ) , const FOO ) ;
122
- //~^ ERROR asm template must be a string literal
123
- global_asm ! ( "{1}" , format!( "{{{}}}" , 0 ) , const FOO , const BAR ) ;
124
- //~^ ERROR asm template must be a string literal
0 commit comments