aboutsummaryrefslogtreecommitdiff
path: root/ld/testsuite/ld-plugin
diff options
context:
space:
mode:
authorH.J. Lu <hjl.tools@gmail.com>2018-01-27 16:04:34 -0800
committerH.J. Lu <hjl.tools@gmail.com>2018-01-27 16:04:34 -0800
commitfef75122c0fe3abafb99d79a63545c1531f4107c (patch)
treef5d5ced02ce4086635d582664b0f0eb056c7de8b /ld/testsuite/ld-plugin
parent8d3b78ce4563e65466202c0d29d0603877846323 (diff)
downloadgdb-fef75122c0fe3abafb99d79a63545c1531f4107c.zip
gdb-fef75122c0fe3abafb99d79a63545c1531f4107c.tar.gz
gdb-fef75122c0fe3abafb99d79a63545c1531f4107c.tar.bz2
Add a testcase for PR ld/22751
Since dummy.o must be placed before -Wl,--whole-archive tmpdir/pr22751.a -Wl,--no-whole-archive to trigger the bug, this patch adds an optional trailing ld options to run_ld_link_exec_tests. PR ld/22751 * testsuite/config/default.exp (INT128_CFLAGS): New. * testsuite/ld-plugin/lto.exp (INT128_CFLAGS): New. Run ld/22751 tests. * testsuite/ld-plugin/pr22751.c: New file. * testsuite/lib/ld-lib.exp (run_ld_link_exec_tests): Add ld trailing options.
Diffstat (limited to 'ld/testsuite/ld-plugin')
-rw-r--r--ld/testsuite/ld-plugin/lto.exp9
-rw-r--r--ld/testsuite/ld-plugin/pr22751.c17
2 files changed, 26 insertions, 0 deletions
diff --git a/ld/testsuite/ld-plugin/lto.exp b/ld/testsuite/ld-plugin/lto.exp
index 896f453..7300f48 100644
--- a/ld/testsuite/ld-plugin/lto.exp
+++ b/ld/testsuite/ld-plugin/lto.exp
@@ -29,6 +29,8 @@ if { ![check_plugin_api_available]
return
}
+global INT128_CFLAGS
+
global CFLAGS
global CXXFLAGS
set saved_CFLAGS "$CFLAGS"
@@ -214,6 +216,9 @@ set lto_link_tests [list \
[list "Build pr22502b.o" \
"$plug_opt" "-flto $lto_no_fat" \
{pr22502b.c}] \
+ [list "Build pr22751.a" \
+ "$plug_opt" "-flto $lto_no_fat $INT128_CFLAGS" \
+ {pr22751.c} {} "pr22751.a"] \
]
if { [at_least_gcc_version 4 7] } {
@@ -400,6 +405,10 @@ set lto_run_tests [list \
[list "Run pr22502" \
"-O2 -flto tmpdir/pr22502a.o tmpdir/pr22502b.o" "" \
{dummy.c} "pr20267" "pass.out" "-flto -O2" "c"] \
+ [list "Run pr22751" \
+ "-O2 -flto" "" \
+ {dummy.c} "pr22751" "pass.out" "-flto -O2" "c" "" \
+ "-Wl,--whole-archive tmpdir/pr22751.a -Wl,--no-whole-archive"] \
]
if { [at_least_gcc_version 4 7] } {
diff --git a/ld/testsuite/ld-plugin/pr22751.c b/ld/testsuite/ld-plugin/pr22751.c
new file mode 100644
index 0000000..33c1bf3
--- /dev/null
+++ b/ld/testsuite/ld-plugin/pr22751.c
@@ -0,0 +1,17 @@
+#include <stdio.h>
+
+#ifdef HAS_INT128
+volatile __int128 a = 42;
+volatile __int128 b = 1;
+#else
+volatile long long a = 42;
+volatile long long b = 1;
+#endif
+
+int
+main (void)
+{
+ if (((int) (a / b)) == 42)
+ printf ("PASS\n");
+ return 0;
+}