aboutsummaryrefslogtreecommitdiff
path: root/ld/testsuite/ld-plugin
diff options
context:
space:
mode:
Diffstat (limited to 'ld/testsuite/ld-plugin')
-rw-r--r--ld/testsuite/ld-plugin/lto.exp9
-rw-r--r--ld/testsuite/ld-plugin/pr22502a.c16
-rw-r--r--ld/testsuite/ld-plugin/pr22502b.c3
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--; }