Workaround GCC 7 bug with debug line numbers causing debug_msg.sh failure.
authorCary Coutant <ccoutant@gmail.com>
Sat, 2 Dec 2017 06:53:08 +0000 (22:53 -0800)
committerCary Coutant <ccoutant@gmail.com>
Sat, 2 Dec 2017 06:53:08 +0000 (22:53 -0800)
gold/
PR gold/21841
* testsuite/debug_msg.sh: Adjust expected line numbers.
* testsuite/odr_violation2.cc (DummyFunction): New function.

gold/ChangeLog
gold/testsuite/debug_msg.sh
gold/testsuite/odr_violation2.cc

index 0da06979aee6f665a618849b96a216aac8df2010..3e8eb1067c49072adcce6efade5cccf788b0ccdb 100644 (file)
@@ -1,3 +1,9 @@
+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
index 032397bb592121ab9bd407dcf9a0fd1b585b4d57..5668d8e9f43ab98ebf3cdf95245ab9ac4bdf88c2 100755 (executable)
@@ -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()'"
index e3d30f3949b0e204a885ffccacda779c32f115d4..aa9868fc27c9166bb56ce61e978ec5a6be4bc875 100644 (file)
@@ -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;