]> sourceware.org Git - libabigail.git/commitdiff
Always show redundant changes in leaf mode
authorDodji Seketeli <dodji@redhat.com>
Fri, 13 Apr 2018 08:16:58 +0000 (10:16 +0200)
committerDodji Seketeli <dodji@redhat.com>
Fri, 13 Apr 2018 09:12:20 +0000 (11:12 +0200)
When in leaf report mode, do not take redundancy into account when
showing changes.  Leaf type changes are shown just once anyway.  So we
want, for instance, all function (return type, parameters) changes to
be shown.  I think.

So for now, this patch allows redundant changes to be shown in leaf
mode.

This patch is part of the set of patches whose titles are:

    Do not show decl-only-to-def changes in the leaf reporter
    Overhaul of the report diff stats summary
    Do not mark "distinct" diff nodes as being redundant
    Fix meaning of "harmless name change" to avoid overfiltering
    Better handle category propagation of pointer changes
    Improve function changes reporting in leaf and default mode
    Don't filter out typedef changes with redundant underlying type changes
    Only show leaf type changes in the leaf type changes section
    Fix leaf report of class data member changes
    Always show redundant changes in leaf mode
    Avoid reporting an enum change if it has already been reported
    When we say an a change was reported earlier give its source location
    [abipkgdiff]: in leaf mode we always show redundant changes
    Update tests for the "better leaf mode redundancy management" patchset

* src/abg-comparison.cc (diff_context::show_leaf_changes_only):
Show redundant changes when in leaf mode.

Signed-off-by: Dodji Seketeli <dodji@redhat.com>
src/abg-comparison.cc

index b2c924fb30445850f56f1b71e9f6acb20d0e106b..f7d27ad6e6733432de0b3618a23f82a007bcbd8a 100644 (file)
@@ -1385,6 +1385,18 @@ diff_context::show_leaf_changes_only(bool f)
   assert(priv_->reporter_ == 0);
 
   priv_->leaf_changes_only_ = f;
+  // So when we are showing only leaf changes, we want to show
+  // redundant changes because of this: Suppose several functions have
+  // their return type changed from void* to int*.  We want them all
+  // to be reported.  In that case the change is not redundant.  As
+  // far as user-defined type changes (like struct/class) they are
+  // already put inside a map which makes them be non-redundant, so we
+  // don't have to worry about that case.
+  //
+  // TODO: maybe that in this case we should avoid firing the
+  // redundancy analysis pass altogether.  That could help save a
+  // couple of CPU cycle here and there!
+  priv_->show_redundant_changes_ = f;
 }
 
 /// Get the flag that indicates if the diff using this context should
This page took 0.042913 seconds and 5 git commands to generate.