diff options
Diffstat (limited to 'gcc-4.9/gcc/testsuite/gcc.dg/torture/pr53922.c')
-rw-r--r-- | gcc-4.9/gcc/testsuite/gcc.dg/torture/pr53922.c | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/gcc-4.9/gcc/testsuite/gcc.dg/torture/pr53922.c b/gcc-4.9/gcc/testsuite/gcc.dg/torture/pr53922.c new file mode 100644 index 000000000..d385587e3 --- /dev/null +++ b/gcc-4.9/gcc/testsuite/gcc.dg/torture/pr53922.c @@ -0,0 +1,26 @@ +/* { dg-do run } */ +/* { dg-require-weak "" } */ +/* { dg-skip-if "No undefined" { *-*-mingw* } { "*" } { "" } } */ +/* { dg-skip-if "No undefined weak" { *-*-aix* } { "*" } { "" } } */ +/* { dg-skip-if "No undefined weak" { hppa*-*-hpux* && { ! lp64 } } { "*" } { "" } } */ +/* { dg-options "-Wl,-undefined,dynamic_lookup" { target *-*-darwin* } } */ + +int x(int a) +{ + return a; +} +int y(int a) __attribute__ ((weak)); +int g = 0; +int main() +{ + int (*scan_func)(int); + if (g) + scan_func = x; + else + scan_func = y; + + if (scan_func) + g = scan_func(10); + + return 0; +} |