Add a new corpus_diff::has_net_changes() entry point

This entry point is to test if there are still ABI changes between two
corpora after applying suppression specifications.

	* include/abg-comparison.h (corpus_diff::has_net_changes): Declare
	new member function.
	* src/abg-comparison.cc (corpus_diff::has_net_changes): Define it.

Signed-off-by: Dodji Seketeli <dodji@redhat.com>
This commit is contained in:
Dodji Seketeli 2015-07-21 12:48:19 +02:00
parent 0cf1828a90
commit 915bf047fb
2 changed files with 26 additions and 0 deletions

View File

@ -2635,6 +2635,9 @@ public:
bool
has_net_subtype_changes() const;
bool
has_net_changes() const;
const diff_stats&
apply_filters_and_suppressions_before_reporting();

View File

@ -13887,6 +13887,29 @@ corpus_diff::has_net_subtype_changes() const
|| stats.net_num_vars_changed() != 0);
}
/// Test if the current instance of @ref corpus_diff carries changes
/// whose reports are not suppressed by any suppression specification.
/// In effect, these are deemed incompatible ABI changes.
///
/// @return true iff the the current instance of @ref corpus_diff
/// carries subtype changes that are deemed incompatible ABI changes.
bool
corpus_diff::has_net_changes() const
{
const diff_stats& stats = const_cast<corpus_diff*>(this)->
apply_filters_and_suppressions_before_reporting();
return (stats.net_num_func_changed()
|| stats.net_num_vars_changed()
|| stats.net_num_func_added()
|| stats.net_num_added_func_syms()
|| stats.net_num_func_removed()
|| stats.net_num_removed_func_syms()
|| stats.net_num_vars_added()
|| stats.net_num_added_var_syms()
|| stats.net_num_removed_var_syms());
}
/// "Less than" functor to compare instances of @ref function_decl.
struct function_comp
{