foo(void)1*c85f09ccSJohn Levonstatic 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