aboutsummaryrefslogtreecommitdiff
path: root/gold
diff options
context:
space:
mode:
authorCary Coutant <ccoutant@gmail.com>2017-12-01 22:53:08 -0800
committerCary Coutant <ccoutant@gmail.com>2017-12-01 22:53:08 -0800
commit0af4ccfc5bc7ded4d87f813e3754486eb5a75349 (patch)
tree1e5b1daaa4f42828338680d0bcef1ad4114e2a45 /gold
parent059256c7465164fc070482dbe04ebe4e2ccf1a08 (diff)
downloadfsf-binutils-gdb-0af4ccfc5bc7ded4d87f813e3754486eb5a75349.zip
fsf-binutils-gdb-0af4ccfc5bc7ded4d87f813e3754486eb5a75349.tar.gz
fsf-binutils-gdb-0af4ccfc5bc7ded4d87f813e3754486eb5a75349.tar.bz2
Workaround GCC 7 bug with debug line numbers causing debug_msg.sh failure.
gold/ PR gold/21841 * testsuite/debug_msg.sh: Adjust expected line numbers. * testsuite/odr_violation2.cc (DummyFunction): New function.
Diffstat (limited to 'gold')
-rw-r--r--gold/ChangeLog6
-rwxr-xr-xgold/testsuite/debug_msg.sh6
-rw-r--r--gold/testsuite/odr_violation2.cc8
3 files changed, 17 insertions, 3 deletions
diff --git a/gold/ChangeLog b/gold/ChangeLog
index 0da0697..3e8eb10 100644
--- a/gold/ChangeLog
+++ b/gold/ChangeLog
@@ -1,5 +1,11 @@
2017-12-01 Cary Coutant <ccoutant@gmail.com>
+ PR gold/21841
+ * testsuite/debug_msg.sh: Adjust expected line numbers.
+ * testsuite/odr_violation2.cc (DummyFunction): New function.
+
+2017-12-01 Cary Coutant <ccoutant@gmail.com>
+
PR gold/22309
* testsuite/Makefile.am (two_file_test_1_v1_ndebug.o): Compile with
no EH information.
diff --git a/gold/testsuite/debug_msg.sh b/gold/testsuite/debug_msg.sh
index 032397b..5668d8e 100755
--- a/gold/testsuite/debug_msg.sh
+++ b/gold/testsuite/debug_msg.sh
@@ -88,7 +88,7 @@ check_missing debug_msg.err "odr_violation1.cc:1[6-8]"
check_missing debug_msg.err "odr_violation2.cc:2[3-5]"
check debug_msg.err ": symbol 'SometimesInlineFunction(int)' defined in multiple places (possible ODR violation):"
check debug_msg.err "debug_msg.cc:6[89]"
-check debug_msg.err "odr_violation2.cc:2[7-9]"
+check debug_msg.err "odr_violation2.cc:3[0-7]"
# Check for the same error messages when using --compressed-debug-sections.
if test -r debug_msg_cdebug.err
@@ -114,7 +114,7 @@ then
check_missing debug_msg_cdebug.err "odr_violation2.cc:2[3-5]"
check debug_msg_cdebug.err ": symbol 'SometimesInlineFunction(int)' defined in multiple places (possible ODR violation):"
check debug_msg_cdebug.err "debug_msg.cc:6[89]"
- check debug_msg_cdebug.err "odr_violation2.cc:2[7-9]"
+ check debug_msg_cdebug.err "odr_violation2.cc:3[0-7]"
fi
# When linking together .so's, we don't catch the line numbers, but we
@@ -132,7 +132,7 @@ check_missing debug_msg_so.err "odr_violation1.cc:1[6-8]"
check_missing debug_msg_so.err "odr_violation2.cc:2[3-5]"
check debug_msg_so.err ": symbol 'SometimesInlineFunction(int)' defined in multiple places (possible ODR violation):"
check debug_msg_so.err "debug_msg.cc:6[89]"
-check debug_msg_so.err "odr_violation2.cc:2[7-9]"
+check debug_msg_so.err "odr_violation2.cc:3[0-7]"
# These messages shouldn't need any debug info to detect:
check debug_msg_ndebug.err "debug_msg_ndebug.so: error: undefined reference to 'undef_fn1()'"
diff --git a/gold/testsuite/odr_violation2.cc b/gold/testsuite/odr_violation2.cc
index e3d30f3..aa9868f 100644
--- a/gold/testsuite/odr_violation2.cc
+++ b/gold/testsuite/odr_violation2.cc
@@ -23,6 +23,14 @@ void SortDescending(int array[], int size) {
extern "C" int OverriddenCFunction(int i) {
return i * i;
}
+
+// Extra lines to put SometimeInlineFunction at line 30+.
+
+// And a dummy function to workaround a GCC 7 bug with debug line numbers.
+int DummyFunction(int i) {
+ return i ^ 0x5555;
+}
+
// This is inline in debug_msg.cc, which makes it a weak symbol too.
int SometimesInlineFunction(int i) {
return i * i;