| extern int printf (const char *, ...); |
| |
| extern int library_func1 (void); |
| extern int library_func2 (void); |
| extern int global; |
| |
| int |
| main (void) |
| { |
| int res = -1; |
| |
| res += library_func1 (); |
| res += library_func2 (); |
| |
| switch (res) |
| { |
| case 0: |
| if (global) |
| printf ("ifunc working correctly\n"); |
| else |
| { |
| printf ("wrong value returned by library_func2\n"); |
| res = -1; |
| } |
| break; |
| |
| case 1: |
| if (global) |
| printf ("wrong value returned by library_func2\n"); |
| else |
| { |
| printf ("ifunc working correctly\n"); |
| res = 0; |
| } |
| break; |
| |
| case 4: |
| printf ("non-ifunc testcase\n"); |
| break; |
| |
| default: |
| printf ("ifunc function not evaluated at run-time, res = %x\n", res); |
| break; |
| } |
| return res; |
| } |