From Craig Silverstein: Quote the symbol name in the ODR violation
message to avoid a gcc collect2 demangling bug.
This commit is contained in:
parent
4b9491ef33
commit
dd8670e56c
|
@ -305,7 +305,7 @@ Symbol_table::Symbol_table_eq::operator()(const Symbol_table_key& k1,
|
||||||
return k1.first == k2.first && k1.second == k2.second;
|
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
|
void
|
||||||
Symbol_table::make_forwarder(Symbol* from, Symbol* to)
|
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)
|
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):"),
|
"places (possible ODR violation):"),
|
||||||
output_file_name, demangle(symbol_name).c_str());
|
output_file_name, demangle(symbol_name).c_str());
|
||||||
for (std::set<std::string>::const_iterator it2 = line_nums.begin();
|
for (std::set<std::string>::const_iterator it2 = line_nums.begin();
|
||||||
|
|
|
@ -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 "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 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_violation1.cc:5"
|
||||||
check "odr_violation2.cc:5"
|
check "odr_violation2.cc:5"
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue