1/* { dg-do compile } */ 2/* { dg-options "-O2" } */ 3/* { dg-final { scan-assembler "j(ra|mp)\[ \t\]*interrupt_sibcall" } } */ 4/* { dg-final { scan-assembler "j(b|)sr\[ \t\]*interrupt_call" } } */ 5/* { dg-final { scan-assembler "j(ra|mp)\[ \t\]*normal_sibcall" } } */ 6 7void normal_sibcall (void); 8void interrupt_call (void); 9void __attribute ((interrupt)) interrupt_sibcall (void); 10 11void normal (void) 12{ 13 normal_sibcall (); 14} 15 16void __attribute ((interrupt)) interrupt (void) 17{ 18 interrupt_call (); 19} 20 21void __attribute ((interrupt)) interrupt_2 (void) 22{ 23 interrupt_sibcall (); 24} 25