From dd8670e56c39a0229030b4bc91b29d5cf309adeb Mon Sep 17 00:00:00 2001 From: Ian Lance Taylor Date: Sat, 17 Nov 2007 02:49:22 +0000 Subject: [PATCH] From Craig Silverstein: Quote the symbol name in the ODR violation message to avoid a gcc collect2 demangling bug. --- gold/symtab.cc | 4 ++-- gold/testsuite/debug_msg.sh | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/gold/symtab.cc b/gold/symtab.cc index 28d4ee8d281..f0c09f9924d 100644 --- a/gold/symtab.cc +++ b/gold/symtab.cc @@ -305,7 +305,7 @@ Symbol_table::Symbol_table_eq::operator()(const Symbol_table_key& k1, return k1.first == k2.first && k1.second == k2.second; } -// Make TO a symbol which forwards to FROM. +// Make TO a symbol which forwards to FROM. void Symbol_table::make_forwarder(Symbol* from, Symbol* to) @@ -1938,7 +1938,7 @@ Symbol_table::detect_odr_violations(const char* output_file_name) const if (line_nums.size() > 1) { - gold_warning(_("while linking %s: symbol %s defined in multiple " + gold_warning(_("while linking %s: symbol '%s' defined in multiple " "places (possible ODR violation):"), output_file_name, demangle(symbol_name).c_str()); for (std::set::const_iterator it2 = line_nums.begin(); diff --git a/gold/testsuite/debug_msg.sh b/gold/testsuite/debug_msg.sh index 987aab7d6e8..87c8efb338b 100755 --- a/gold/testsuite/debug_msg.sh +++ b/gold/testsuite/debug_msg.sh @@ -56,7 +56,7 @@ check "debug_msg.o: in function int testfn(double):${srcdir}/debug_msg.c check "debug_msg.o: in function int testfn(double):${srcdir}/debug_msg.cc:45: undefined reference to 'undef_int'" # Check we detected the ODR (One Definition Rule) violation. -check ": symbol Ordering::operator()(int, int) *defined in multiple places (possible ODR violation):" +check ": symbol 'Ordering::operator()(int, int)' defined in multiple places (possible ODR violation):" check "odr_violation1.cc:5" check "odr_violation2.cc:5" -- 2.30.2