foo(void)1*c85f09ccSJohn Levon static void foo(void)
2*c85f09ccSJohn Levon {
3*c85f09ccSJohn Levon 	asm("");
4*c85f09ccSJohn Levon 	asm volatile ("v");
5*c85f09ccSJohn Levon 	asm inline ("i");
6*c85f09ccSJohn Levon 	asm volatile inline ("vi");
7*c85f09ccSJohn Levon 	asm inline volatile ("iv");
8*c85f09ccSJohn Levon 
9*c85f09ccSJohn Levon 	asm goto ("g" :::: label);
10*c85f09ccSJohn Levon 	asm volatile goto ("vg" :::: label);
11*c85f09ccSJohn Levon 	asm inline goto ("ig" :::: label);
12*c85f09ccSJohn Levon 	asm volatile inline goto ("vig" :::: label);
13*c85f09ccSJohn Levon 	asm inline volatile goto ("ivg" :::: label);
14*c85f09ccSJohn Levon 
15*c85f09ccSJohn Levon 	asm goto volatile ("gv" :::: label);
16*c85f09ccSJohn Levon 	asm goto inline ("gi" :::: label);
17*c85f09ccSJohn Levon 	asm goto volatile inline ("gvi" :::: label);
18*c85f09ccSJohn Levon 	asm goto inline volatile ("giv" :::: label);
19*c85f09ccSJohn Levon 	asm volatile goto inline ("vgi" :::: label);
20*c85f09ccSJohn Levon 	asm inline goto volatile ("giv" :::: label);
21*c85f09ccSJohn Levon 
22*c85f09ccSJohn Levon 	// warn on duplicates
23*c85f09ccSJohn Levon 	asm volatile volatile ("vv");
24*c85f09ccSJohn Levon 	asm inline inline ("ii");
25*c85f09ccSJohn Levon 	asm goto goto ("gg" :::: label);
26*c85f09ccSJohn Levon 
27*c85f09ccSJohn Levon 	asm inline volatile inline ("ivi");
28*c85f09ccSJohn Levon 	asm inline goto inline ("igi" :::: label);
29*c85f09ccSJohn Levon 	asm goto inline goto ("gig" :::: label);
30*c85f09ccSJohn Levon 	asm goto volatile goto ("gvg" :::: label);
31*c85f09ccSJohn Levon 	asm volatile inline volatile ("viv");
32*c85f09ccSJohn Levon 	asm volatile goto volatile ("vgv" :::: label);
33*c85f09ccSJohn Levon 
34*c85f09ccSJohn Levon label:
35*c85f09ccSJohn Levon 	;
36*c85f09ccSJohn Levon }
37*c85f09ccSJohn Levon 
38*c85f09ccSJohn Levon /*
39*c85f09ccSJohn Levon  * check-name: asm-inline
40*c85f09ccSJohn Levon  *
41*c85f09ccSJohn Levon  * check-error-start
42*c85f09ccSJohn Levon asm-inline.c:23:22: warning: duplicated asm modifier
43*c85f09ccSJohn Levon asm-inline.c:24:20: warning: duplicated asm modifier
44*c85f09ccSJohn Levon asm-inline.c:25:18: warning: duplicated asm modifier
45*c85f09ccSJohn Levon asm-inline.c:27:29: warning: duplicated asm modifier
46*c85f09ccSJohn Levon asm-inline.c:28:25: warning: duplicated asm modifier
47*c85f09ccSJohn Levon asm-inline.c:29:25: warning: duplicated asm modifier
48*c85f09ccSJohn Levon asm-inline.c:30:27: warning: duplicated asm modifier
49*c85f09ccSJohn Levon asm-inline.c:31:29: warning: duplicated asm modifier
50*c85f09ccSJohn Levon asm-inline.c:32:27: warning: duplicated asm modifier
51*c85f09ccSJohn Levon  * check-error-end
52*c85f09ccSJohn Levon  */
53