aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIan Lance Taylor <iant@google.com>2007-11-17 02:49:22 +0000
committerIan Lance Taylor <iant@google.com>2007-11-17 02:49:22 +0000
commitdd8670e56c39a0229030b4bc91b29d5cf309adeb (patch)
tree2a05279159781d628d15309357947728b83e4d36
parent4b9491ef33c96105012d475c66166f99bef2a0cd (diff)
downloadgdb-dd8670e56c39a0229030b4bc91b29d5cf309adeb.zip
gdb-dd8670e56c39a0229030b4bc91b29d5cf309adeb.tar.gz
gdb-dd8670e56c39a0229030b4bc91b29d5cf309adeb.tar.bz2
From Craig Silverstein: Quote the symbol name in the ODR violation
message to avoid a gcc collect2 demangling bug.
-rw-r--r--gold/symtab.cc4
-rwxr-xr-xgold/testsuite/debug_msg.sh2
2 files changed, 3 insertions, 3 deletions
diff --git a/gold/symtab.cc b/gold/symtab.cc
index 28d4ee8..f0c09f9 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<std::string>::const_iterator it2 = line_nums.begin();
diff --git a/gold/testsuite/debug_msg.sh b/gold/testsuite/debug_msg.sh
index 987aab7..87c8efb 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>(double):${srcdir}/debug_msg.c
check "debug_msg.o: in function int testfn<double>(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"