1 /* PR target/67770 */
2 /* { dg-do run { target ia32 } } */
3 /* { dg-require-effective-target trampolines } */
4 /* { dg-options "-O2" } */
5 
6 __attribute__ ((noinline)) void
foo(int i,void (* bar)(int))7 foo (int i, void (* __attribute__ ((regparm (3))) bar) (int))
8 {
9   bar (i);
10 }
11 
12 int
main()13 main ()
14 {
15   int p = 0;
16 
17   __attribute__ ((regparm (3), noinline)) void
18   bar (int i)
19   {
20     if (__builtin_expect (i, 0))
21       ++p;
22   }
23 
24   foo (0, bar);
25   bar (0);
26 
27   if (p != 0)
28     __builtin_abort ();
29 
30   foo (1, bar);
31   bar (1);
32 
33   if (p != 2)
34     __builtin_abort ();
35 
36   return 0;
37 }
38