From 4bed1e9b2c0ea8b1d20b3e0935f05323077efcf7 Mon Sep 17 00:00:00 2001 From: Dodji Seketeli Date: Thu, 9 Oct 2014 15:13:37 +0200 Subject: [PATCH] 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 --- src/abg-comparison.cc | 14 ++++++-------- tests/data/test-abidiff/test-struct1-report.txt | 2 +- 2 files changed, 7 insertions(+), 9 deletions(-) diff --git a/src/abg-comparison.cc b/src/abg-comparison.cc index e70a8f6d..f9f85366 100644 --- a/src/abg-comparison.cc +++ b/src/abg-comparison.cc @@ -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"; } diff --git a/tests/data/test-abidiff/test-struct1-report.txt b/tests/data/test-abidiff/test-struct1-report.txt index 994cc66e..f25c7266 100644 --- a/tests/data/test-abidiff/test-struct1-report.txt +++ b/tests/data/test-abidiff/test-struct1-report.txt @@ -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)