1 /* { dg-do compile } */ 2 /* { dg-options "-mlong-calls addressing=absolute" } */ 3 4 extern int long_call_func () __attribute__((long_call)); 5 extern int far_func () __attribute__((far)); 6 extern int short_call_func () __attribute__((short_call)); 7 extern int near_func () __attribute__((near)); 8 extern int normal_func (); 9 test()10int test () 11 { 12 return (long_call_func () 13 + far_func () 14 + short_call_func () 15 + near_func () 16 + normal_func ()); 17 } 18 19 /* { dg-final { scan-assembler-not "\tjal\tlong_call_func\n" } } */ 20 /* { dg-final { scan-assembler-not "\tjal\tfar_func\n" } } */ 21 /* { dg-final { scan-assembler "\t(jal(|s)|balc)\tshort_call_func\n" } } */ 22 /* { dg-final { scan-assembler "\t(jal(|s)|balc)\tnear_func\n" } } */ 23 /* { dg-final { scan-assembler-not "\tjal\tnormal_func\n" } } */ 24