diff options
Diffstat (limited to 'ld/testsuite/ld-plugin')
-rw-r--r-- | ld/testsuite/ld-plugin/lto.exp | 9 | ||||
-rw-r--r-- | ld/testsuite/ld-plugin/pr22502a.c | 16 | ||||
-rw-r--r-- | ld/testsuite/ld-plugin/pr22502b.c | 3 |
3 files changed, 28 insertions, 0 deletions
diff --git a/ld/testsuite/ld-plugin/lto.exp b/ld/testsuite/ld-plugin/lto.exp index d34479f..56c852d 100644 --- a/ld/testsuite/ld-plugin/lto.exp +++ b/ld/testsuite/ld-plugin/lto.exp @@ -208,6 +208,12 @@ set lto_link_tests [list \ "-flto -Wl,-plugin,$plug_so" "-flto" \ {pr20321.c} {{warning ".*: duplicated plugin"}} \ "pr20321" "c"] \ + [list "Build pr22502a.o" \ + "" "" \ + {pr22502a.c}] \ + [list "Build pr22502b.o" \ + "$plug_opt" "-flto $lto_no_fat" \ + {pr22502b.c}] \ ] if { [at_least_gcc_version 4 7] } { @@ -391,6 +397,9 @@ set lto_run_tests [list \ [list "Run pr20267b" \ "-O2 -flto tmpdir/pr20267a.o tmpdir/libpr20267b.a" "" \ {dummy.c} "pr20267b" "pass.out" "-flto -O2" "c"] \ + [list "Run pr22502" \ + "-O2 -flto tmpdir/pr22502a.o tmpdir/pr22502b.o" "" \ + {dummy.c} "pr20267" "pass.out" "-flto -O2" "c"] \ ] if { [at_least_gcc_version 4 7] } { diff --git a/ld/testsuite/ld-plugin/pr22502a.c b/ld/testsuite/ld-plugin/pr22502a.c new file mode 100644 index 0000000..0eaa1af --- /dev/null +++ b/ld/testsuite/ld-plugin/pr22502a.c @@ -0,0 +1,16 @@ +#include <stdio.h> + +volatile int x; +extern void abort (); + +__attribute__((weak)) +void foobar (void) { x++; } + +int main (void) +{ + foobar (); + if (x != -1) + abort (); + printf ("PASS\n"); + return 0; +} diff --git a/ld/testsuite/ld-plugin/pr22502b.c b/ld/testsuite/ld-plugin/pr22502b.c new file mode 100644 index 0000000..87389b9 --- /dev/null +++ b/ld/testsuite/ld-plugin/pr22502b.c @@ -0,0 +1,3 @@ +extern volatile int x; + +void foobar (void) { x--; } |