mirror of
git://sourceware.org/git/libabigail.git
synced 2025-03-10 08:37:41 +00:00
In this problem report, the issue is that when comparing two corpus groups, especially when looking up function/variable symbols, the get_fun_symbol_map() and get_var_symbol_map() member functions used are corpus::get_{fun,var}_symbol_map, rather than corpus_group::get_{fun, var}_symbol_map. Note that the type corpus_group inherits from the type corpus. That leads to unexpected comparison results, especially for symbols. This patch fixes this by making the corpus::get_{fun, var}_symbol_map member function be virtual and by using it during the lookup of function/variable symbols. That way, the right symbol map gets used. * include/abg-corpus.h (corpus{_group}::get_{fun, var}_symbol_map): Make these member functions virtual. * src/abg-corpus.cc (corpus::lookup_{function, variable}_symbol): Use the virtual corpus::get_{fun, var}_symbol_map() member function to get the symbols of the current corpus or corpus_group. * tests/data/Makefile.am: Add the new test input material below to source distribution. * tests/data/test-abidiff/test-PR24552-report0.txt: New test input. * tests/data/test-abidiff/test-PR24552-v0.abi: Likewise. * tests/data/test-abidiff/test-PR24552-v1.abi: Likewise. * tests/test-abidiff.cc (main): Support comparing corpus groups. (specs): Add the new test inputs to the harness. Signed-off-by: Dodji Seketeli <dodji@redhat.com>
12 lines
634 B
Plaintext
12 lines
634 B
Plaintext
<abi-corpus-group path='mypath' architecture='elf-arm-aarch64'>
|
|
<abi-corpus path='vmlinux' architecture='elf-arm-aarch64'>
|
|
<elf-function-symbols>
|
|
<elf-symbol name='func' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes'/>
|
|
</elf-function-symbols>
|
|
<abi-instr version='1.0' address-size='64' path='file.h' comp-dir-path='common' language='LANG_C89'>
|
|
<function-decl name='func' filepath='file.h' line='22' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='func'>
|
|
</function-decl>
|
|
</abi-instr>
|
|
</abi-corpus>
|
|
</abi-corpus-group>
|