]> sourceware.org Git - libabigail.git/commitdiff
Do not report about voffset when it's not set in debug info
authorDodji Seketeli <dodji@redhat.com>
Sun, 28 May 2017 17:40:51 +0000 (19:40 +0200)
committerDodji Seketeli <dodji@redhat.com>
Mon, 3 Jul 2017 15:45:47 +0000 (17:45 +0200)
Sometimes some virtual member functions don't have any virtual offset
set in the debug info.  This happens for virtual destructors
sometimes.  In that case, the ABI change report should not refer to
that unset virtual offset as being '0'.  Rather, it shouldn't refer to
it at all.

This is what this patch does.

* include/abg-ir.h (mem_fn_context_rel::mem_fn_context_rel):
Initialize the virtual offset to -1.
* src/abg-comparison.cc (represent): In the overload to represent
a method_decl, do not represent the vofffset if it's not set.
* src/abg-writer.cc (write_voffset): The virtual offset is signed
because if it's -1, it means no offset is set.
* tests/data/test-annotate/test14-pr18893.so.abi: Adjust.
* tests/data/test-annotate/test18-pr19037-libvtkRenderingLIC-6.1.so.abi:
Adjust.
* tests/data/test-annotate/test19-pr19023-libtcmalloc_and_profiler.so.abi:
Adjust.
* tests/data/test-annotate/test20-pr19025-libvtkParallelCore-6.1.so.abi:
Adjust.
* tests/data/test-diff-dwarf-abixml/test0-pr19026-libvtkIOSQL-6.1.so.1.abi:
Adjust.
* tests/data/test-diff-dwarf/test28-vtable-changes-report-0.txt: Adjust.
* tests/data/test-read-dwarf/test10-pr18818-gcc.so.abi: Adjust.
* tests/data/test-read-dwarf/test11-pr18828.so.abi: Adjust.
* tests/data/test-read-dwarf/test14-pr18893.so.abi: Adjust.
* tests/data/test-read-dwarf/test18-pr19037-libvtkRenderingLIC-6.1.so.abi:
Adjust.
* tests/data/test-read-dwarf/test19-pr19023-libtcmalloc_and_profiler.so.abi:
Adjust.
* tests/data/test-read-dwarf/test20-pr19025-libvtkParallelCore-6.1.so.abi:
Adjust.
* tests/data/test-read-dwarf/test22-pr19097-libstdc++.so.6.0.17.so.abi:
Adjust.

Signed-off-by: Dodji Seketeli <dodji@redhat.com>
tests/data/test-diff-dwarf/test28-vtable-changes-report-0.txt

index 8b137891791fe96927ad78e64b0aad7bded08bdc..5ec28d83fa114eaa3fb37192a8f0fc59d46ac407 100644 (file)
@@ -1 +1,25 @@
+Functions changes summary: 0 Removed, 1 Changed, 2 Added functions
+Variables changes summary: 0 Removed, 0 Changed, 0 Added variable
+Function symbols changes summary: 0 Removed, 0 Added function symbol not referenced by debug info
+Variable symbols changes summary: 0 Removed, 3 Added variable symbols not referenced by debug info
+
+2 Added functions:
+
+  'method virtual S::~S(int)'
+    note that this adds a new entry to the vtable of struct S
+  'method virtual S::~S(int)'
+    note that this adds a new entry to the vtable of struct S
+
+1 function with some indirect sub-type change:
+
+  [C]'method void S::bar()' has some indirect sub-type changes:
+    method void S::bar() is now declared virtual
+      note that this is an ABI incompatible change to the vtable of struct S
+
+
+3 Added variable symbols not referenced by debug info:
+
+  _ZTI1S, aliases _ZTS1S
+  _ZTS1S
+  _ZTV1S, aliases _ZTI1S, _ZTS1S
 
This page took 0.036171 seconds and 5 git commands to generate.