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