diff options
author | David Malcolm <dmalcolm@redhat.com> | 2022-03-17 16:08:59 -0400 |
---|---|---|
committer | David Malcolm <dmalcolm@redhat.com> | 2022-03-17 18:38:00 -0400 |
commit | 79e210f0c8e1fad875333e93b5ae2fe9b4879b7a (patch) | |
tree | 2e6158873eaf17bc6fe0d8cdb28c22d26e2d45e7 | |
parent | 2b3404357a1f9991921189e331aeefb826f0523a (diff) | |
download | gcc-79e210f0c8e1fad875333e93b5ae2fe9b4879b7a.zip gcc-79e210f0c8e1fad875333e93b5ae2fe9b4879b7a.tar.gz gcc-79e210f0c8e1fad875333e93b5ae2fe9b4879b7a.tar.bz2 |
analyzer: fixes to -fdump-analyzer-state-purge
gcc/analyzer/ChangeLog:
* state-purge.cc (state_purge_annotator::add_node_annotations):
Avoid duplicate before-supernode annotations when returning from
an interprocedural call. Show after-supernode annotations.
Signed-off-by: David Malcolm <dmalcolm@redhat.com>
-rw-r--r-- | gcc/analyzer/state-purge.cc | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/gcc/analyzer/state-purge.cc b/gcc/analyzer/state-purge.cc index e99c9cb..c37234f 100644 --- a/gcc/analyzer/state-purge.cc +++ b/gcc/analyzer/state-purge.cc @@ -499,11 +499,12 @@ state_purge_annotator::add_node_annotations (graphviz_out *gv, /* Different in-edges mean different names need purging. Determine which points to dump. */ auto_vec<function_point> points; - if (n.entry_p ()) + if (n.entry_p () || n.m_returning_call) points.safe_push (function_point::before_supernode (&n, NULL)); else for (auto inedge : n.m_preds) points.safe_push (function_point::before_supernode (&n, inedge)); + points.safe_push (function_point::after_supernode (&n)); for (auto & point : points) { |