1/* { dg-do compile { target bfin-*-* } } */
2/* { dg-options "-O2" } */
3/* { dg-final { scan-assembler-not "call\[^\\n\]*foo" } } */
4/* { dg-final { scan-assembler-not "jump\[^\\n\]*foo" } } */
5/* { dg-final { scan-assembler "call\[^\\n\]*baz" } } */
6/* { dg-final { scan-assembler "jump\[^\\n\]*baz" } } */
7/* { dg-final { scan-assembler "call\[^\\n\]*bar" } } */
8/* { dg-final { scan-assembler "jump\[^\\n\]*bar" } } */
9
10extern void foo () __attribute__((longcall));
11extern void bar () __attribute__((shortcall));
12extern void baz ();
13
14int t1 ()
15{
16    foo ();
17    bar ();
18    baz ();
19    return 4;
20}
21
22void t2 ()
23{
24    foo ();
25}
26void t3 ()
27{
28    bar ();
29}
30void t4 ()
31{
32    baz ();
33}
34