123456789101112131415161718192021222324252627282930313233343536373839 |
- #include <stdio.h>
- extern int foo(void);
- extern int bar(void);
- typedef int (*func_p) (void);
- func_p foo_ptr = foo;
- func_p
- __attribute__((noinline))
- get_bar (void)
- {
- return bar;
- }
- int
- main (void)
- {
- func_p bar_ptr = get_bar ();
- if (bar_ptr != bar)
- __builtin_abort ();
- if (bar_ptr() != -1)
- __builtin_abort ();
- if (bar() != -1)
- __builtin_abort ();
- if (foo_ptr != foo)
- __builtin_abort ();
- if (foo_ptr() != 1)
- __builtin_abort ();
- if (foo() != 1)
- __builtin_abort ();
- printf ("OK\n");
- return 0;
- }
|