aboutsummaryrefslogtreecommitdiff
path: root/gold/testsuite
diff options
context:
space:
mode:
authorCary Coutant <ccoutant@google.com>2015-04-09 11:52:21 -0700
committerCary Coutant <ccoutant@google.com>2015-04-09 11:53:01 -0700
commit437ddf0c4cb63fdb68c4bd1cc155144db344d0c5 (patch)
tree125d12fcbbc64bc9b76e629407a64c687ac12000 /gold/testsuite
parentcd6faa73f8e3b888ee8b73a733382a5587aca202 (diff)
downloadgdb-437ddf0c4cb63fdb68c4bd1cc155144db344d0c5.zip
gdb-437ddf0c4cb63fdb68c4bd1cc155144db344d0c5.tar.gz
gdb-437ddf0c4cb63fdb68c4bd1cc155144db344d0c5.tar.bz2
Improve ODR checking in gold.
gold/ * debug.h (DEBUG_LOCATION): New. (DEBUG_ALL): Include DEBUG_LOCATION. (debug_string_to_enum): Add DEBUG_LOCATION. * dwarf_reader.cc (Sized_dwarf_line_info::read_lines): Fix debug output to print correct context. (Sized_dwarf_line_info::do_addr2line): Add debug output. Return up to 4 more locations at the beginning of the function. * symtab.cc (Symbol_table::detect_odr_violations): Get canonical result before sorting list of line numbers. * testsuite/debug_msg.sh: Allow range of line numbers for canonical results on optimized code.
Diffstat (limited to 'gold/testsuite')
-rwxr-xr-xgold/testsuite/debug_msg.sh12
1 files changed, 6 insertions, 6 deletions
diff --git a/gold/testsuite/debug_msg.sh b/gold/testsuite/debug_msg.sh
index 785e5c5..54c72f1 100755
--- a/gold/testsuite/debug_msg.sh
+++ b/gold/testsuite/debug_msg.sh
@@ -74,7 +74,7 @@ fi
# Check we detected the ODR (One Definition Rule) violation.
check debug_msg.err ": symbol 'Ordering::operator()(int, int)' defined in multiple places (possible ODR violation):"
check debug_msg.err "odr_violation1.cc:6"
-check debug_msg.err "odr_violation2.cc:12"
+check debug_msg.err "odr_violation2.cc:1[25]"
# Check we don't have ODR false positives:
check_missing debug_msg.err "OdrDerived::~OdrDerived()"
@@ -88,7 +88,7 @@ check_missing debug_msg.err "odr_violation1.cc:16"
check_missing debug_msg.err "odr_violation2.cc:23"
check debug_msg.err ": symbol 'SometimesInlineFunction(int)' defined in multiple places (possible ODR violation):"
check debug_msg.err "debug_msg.cc:68"
-check debug_msg.err "odr_violation2.cc:27"
+check debug_msg.err "odr_violation2.cc:2[78]"
# Check for the same error messages when using --compressed-debug-sections.
if test -r debug_msg_cdebug.err
@@ -106,7 +106,7 @@ then
fi
check debug_msg_cdebug.err ": symbol 'Ordering::operator()(int, int)' defined in multiple places (possible ODR violation):"
check debug_msg_cdebug.err "odr_violation1.cc:6"
- check debug_msg_cdebug.err "odr_violation2.cc:12"
+ check debug_msg_cdebug.err "odr_violation2.cc:1[25]"
check_missing debug_msg_cdebug.err "OdrDerived::~OdrDerived()"
check_missing debug_msg_cdebug.err "__adjust_heap"
check_missing debug_msg_cdebug.err ": symbol 'OverriddenCFunction' defined in multiple places (possible ODR violation):"
@@ -114,7 +114,7 @@ then
check_missing debug_msg_cdebug.err "odr_violation2.cc:23"
check debug_msg_cdebug.err ": symbol 'SometimesInlineFunction(int)' defined in multiple places (possible ODR violation):"
check debug_msg_cdebug.err "debug_msg.cc:68"
- check debug_msg_cdebug.err "odr_violation2.cc:27"
+ check debug_msg_cdebug.err "odr_violation2.cc:2[78]"
fi
# When linking together .so's, we don't catch the line numbers, but we
@@ -124,7 +124,7 @@ check debug_msg_so.err "debug_msg.so: error: undefined reference to 'undef_fn2()
check debug_msg_so.err "debug_msg.so: error: undefined reference to 'undef_int'"
check debug_msg_so.err ": symbol 'Ordering::operator()(int, int)' defined in multiple places (possible ODR violation):"
check debug_msg_so.err "odr_violation1.cc:6"
-check debug_msg_so.err "odr_violation2.cc:12"
+check debug_msg_so.err "odr_violation2.cc:1[25]"
check_missing debug_msg_so.err "OdrDerived::~OdrDerived()"
check_missing debug_msg_so.err "__adjust_heap"
check_missing debug_msg_so.err ": symbol 'OverriddenCFunction' defined in multiple places (possible ODR violation):"
@@ -132,7 +132,7 @@ check_missing debug_msg_so.err "odr_violation1.cc:16"
check_missing debug_msg_so.err "odr_violation2.cc:23"
check debug_msg_so.err ": symbol 'SometimesInlineFunction(int)' defined in multiple places (possible ODR violation):"
check debug_msg_so.err "debug_msg.cc:68"
-check debug_msg_so.err "odr_violation2.cc:27"
+check debug_msg_so.err "odr_violation2.cc:2[78]"
# 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()'"