mirror of
git://sourceware.org/git/libabigail.git
synced 2024-12-20 17:00:36 +00:00
ddc21ed73e
Libabigail considers a removed function (or global variable) as being an incompatible change, whether it has been suppressed or not. Likewise, even if all function sub-type changes have been suppressed, changed virtual offset on functions are still considered incompatible. Thus, abidiff still returns an exit code that reflects an incompatible change even if the removed symbol change was suppressed. The rule should rather be that if incompatible changes have been suppressed, abidiff (and the other tools) should take that into account and not return an exit code that reflects incompatible changes. This patch implements that rule, at least for the incompatible changes that are detected so far. * src/abg-comparison.cc (corpus_diff::has_incompatible_changes): Consider the *net* number of removed function and variable symbols. Also, if all function sub-type changes have been suppressed, then no virtual offset change should be considered incompatible. * tests/data/test-abidiff-exit/test1-voffset-change-report1.txt * tests/data/test-abidiff-exit/test1-voffset-change.abignore * tests/data/test-abidiff-exit/test2-filtered-removed-fns-report0.txt * tests/data/test-abidiff-exit/test2-filtered-removed-fns-report1.txt * tests/data/test-abidiff-exit/test2-filtered-removed-fns-v0.c * tests/data/test-abidiff-exit/test2-filtered-removed-fns-v1.c * tests/data/test-abidiff-exit/test2-filtered-removed-fns.abignore * tests/data/Makefile.am: Add the new test material above to source distribution. * tests/test-abidiff-exit.cc (InOutSpec::in_suppr_path): New data member. (in_out_specs): Adjust. Add new test inputs. (main): Adjust. Signed-off-by: Dodji Seketeli <dodji@redhat.com>
10 lines
175 B
Plaintext
10 lines
175 B
Plaintext
[suppress_function]
|
|
name = C::virtual_func0
|
|
change_kind = function-subtype-change
|
|
|
|
[suppress_function]
|
|
name = C::virtual_func1
|
|
change_kind = function-subtype-change
|
|
|
|
|