mirror of
git://sourceware.org/git/libabigail.git
synced 2025-01-20 00:00:45 +00:00
The Git repository of the Libabigail Project
591014bf40
* include/abg-comp-filter.h (class harmful_filter): Update comment. (class redundant_filter): Declare new filter. * include/abg-comparison.h (enum diff_category::NOT_REDUNDANT_CATEGORY): New category. Update the values of the other enumerators. (diff_context::{add_diff, diff_has_been_traversed}): New overloads. (diff_context::{categorizing_redundancy, show_redundant_changes}): Declare new methods. (diff_context::remove_from_category): Define new inline method. * src/abg-comparison.cc (noop_deleter::operator()): Constify the parameter. (CATEGORIZE_REDUNDANCY_FROM_CHILD_NODE) (UPDATE_REDUNDANCY_CATEGORIZATION_FROM_NODE_SUBTREE): New macros. (TRAVERSE_DIFF_NODE_AND_PROPAGATE_CATEGORY) (TRAVERSE_MEM_DIFF_NODE_AND_PROPAGATE_CATEGORY) (TRAVERSE_MEM_FN_DIFF_NODE_AND_PROPAGATE_CATEGORY): Use the new CATEGORIZE_REDUNDANCY_FROM_CHILD_NODE and UPDATE_REDUNDANCY_CATEGORIZATION_FROM_NODE_SUBTREE macros above. (ENSURE_DIFF_NODE_TRAVERSED_ONCE) (ENSURE_MEM_DIFF_NODE_TRAVERSED_ONCE): If the (type_decl or class) node hasn't been yet traversed, mark it as non-redundant. (diff_context::priv::categorizing_redundancy): New member. (diff_context::priv::priv): Initialize it. (diff_context::{add_diff, diff_has_been_traversed): Define new overloads. (diff_context::mark_diff_as_traversed): Intern a diff node that is marked as being traversed. (diff_context::{categorizing_redundancy, show_redundant_changes}): Define new methods. (diff::is_filtered_out): A redundant function or top-level variable is considered filtered-out. Otherwise, the new NOT_REDUNDANT_CATEGORY doesn't play any role when comparing allowed categories with the set of categories a diff node belongs to. (corpus::priv::categorize_redundant_changed_sub_nodes): Define new member function. (corpus_diff::priv::apply_filters_and_compute_diff_stats): Change this to first walk the changed functions and variables to apply filters, then categorize redundant changed functions, and then walk the changed functions and variables again to count filtered-out diff nodes. (filtering::redundant_filter::visit): Define new member function. * tools/bidiff.cc (options::show_redundant_changes): New data member. (options::options): Initialize it. (display_usage): Add help string for the --redundant command line option. (parse_command_line): Add support for the --redundant command line option. (set_diff_context_from_opts): Take the --redundant command line option in account. * tests/test-diff-filter.cc: Update this to add new test inputs. * tests/data/test-diff-filter/test14-0-report.txt: New test input. * tests/data/test-diff-filter/test14-1-report.txt: Likewise. * tests/data/test-diff-filter/test14-v0.cc: Likewise. * tests/data/test-diff-filter/test14-v0.o: Likewise. * tests/data/test-diff-filter/test14-v1.cc: Likewise. * tests/data/test-diff-filter/test14-v1.o: Likewise. * tests/data/test-diff-filter/test15-0-report.txt: Likewise. * tests/data/test-diff-filter/test15-1-report.txt: Likewise. * tests/data/test-diff-filter/test15-v0.cc: Likewise. * tests/data/test-diff-filter/test15-v0.o: Likewise. * tests/data/test-diff-filter/test15-v1.cc: Likewise. * tests/data/test-diff-filter/test15-v1.o: Likewise. * tests/Makefile.am: Add the above to the build system. Signed-off-by: Dodji Seketeli <dodji@redhat.com> |
||
---|---|---|
doc | ||
include | ||
m4 | ||
scripts | ||
src | ||
tests | ||
tools | ||
abigail.m4 | ||
AUTHORS | ||
ChangeLog | ||
COMMIT-LOG-GUIDELINES | ||
COMPILING | ||
config.guess | ||
config.h.in | ||
config.sub | ||
configure.ac | ||
CONTRIBUTING | ||
COPYING | ||
COPYING-LGPLV3 | ||
depcomp | ||
INSTALL | ||
install-sh | ||
libabigail.pc.in | ||
ltmain.sh | ||
Makefile.am | ||
missing | ||
NEWS | ||
README |
This is the Application Binary Interface Generic Analysis and Instrumentation Library. It aims at constructing, manipulating, serializing and de-serializing ABI-relevant artifacts. The set of artifacts that we are intersted is made of quantities like types, variable, fonctions and declarations of a given library or program. For a given library or program this set of quantities is called an ABI corpus. This library aims at (among other things) providing a way to comparing two ABI Corpuses, provide detailed information about their differences, and help build tools to infer interesting conclusions about these differences. You are welcome to contribute to this project after reading the files CONTRIBUTING and COMMIT-LOG-GUIDELINES files in the source tree. Communicating with the maintainers of this project -- including sending patches to be include to the source code -- happens via email at libabigail@sourceware.org.