Avoid broken output for virtual member fns w/o symbols

* src/abg-comparison.cc (represent): When a virtual member
	function has no associated elf symbol, do not emit garbage in lieu
	of the linkage name.  Just emit no linkage name;
	* tests/data/test-abidiff/test-struct1-report.txt: Adjust.

Signed-off-by: Dodji Seketeli <dodji@redhat.com>
This commit is contained in:
Dodji Seketeli 2014-10-09 15:13:37 +02:00
parent ed57bfdf08
commit 4bed1e9b2c
2 changed files with 7 additions and 9 deletions

View File

@ -1533,14 +1533,12 @@ represent(diff_context& ctxt,
<< meth->get_type()->get_class_type()->get_virtual_mem_fns().size();
if (ctxt.show_linkage_names()
&& (mem_fn->get_symbol() ||! mem_fn->get_linkage_name().empty()))
out << " {";
if (mem_fn->get_symbol())
out << mem_fn->get_symbol()->get_id_string();
else if (!mem_fn->get_linkage_name().empty())
out << mem_fn->get_linkage_name();
out << "}";
&& (mem_fn->get_symbol()))
{
out << " {"
<< mem_fn->get_symbol()->get_id_string()
<< "}";
}
out << "\n";
}

View File

@ -3,7 +3,7 @@
in unqualified underlying type 'class s0':
size changed from 192 to 256 bits
1 member function insertion:
'method virtual int s0::foo(int, char) const', virtual at voffset 2/2_ZNK2s03fooEic}
'method virtual int s0::foo(int, char) const', virtual at voffset 2/2
1 data member deletion:
'char s0::m1', at offset 96 (in bits)