aboutsummaryrefslogtreecommitdiff
path: root/gcc/analyzer/ChangeLog
diff options
context:
space:
mode:
authorDavid Malcolm <dmalcolm@redhat.com>2020-03-05 12:06:58 -0500
committerDavid Malcolm <dmalcolm@redhat.com>2020-03-06 16:37:36 -0500
commit41f99ba6c576b84ca0f2de7d66ebc087454e93cf (patch)
treed154bf8465be154a7a5df5673bf4925b8161ff52 /gcc/analyzer/ChangeLog
parent191bcd0f30dd37dec773efb0125afdcae9bd90ef (diff)
downloadgcc-41f99ba6c576b84ca0f2de7d66ebc087454e93cf.zip
gcc-41f99ba6c576b84ca0f2de7d66ebc087454e93cf.tar.gz
gcc-41f99ba6c576b84ca0f2de7d66ebc087454e93cf.tar.bz2
analyzer: improvements to state dumping
This patch fixes a bug in which summarized state dumps involving a non-NULL pointer to a region for which get_representative_path_var returned NULL were erroneously dumped as "NULL". It also extends sm-state dumps so that they show representative tree values, where available. Finally, it adds some selftest coverage for such dumps. Doing so requires replacing some %qE with a dump_quoted_tree, to avoid C vs C++ differences between "make selftest-c" and "make selftest-c++". gcc/analyzer/ChangeLog: * analyzer.h (dump_quoted_tree): New decl. * engine.cc (exploded_node::dump_dot): Pass region model to sm_state_map::print. * program-state.cc: Include diagnostic-core.h. (sm_state_map::print): Add "model" param and use it to print representative trees. Only print origin information if non-null. (sm_state_map::dump): Pass NULL for model to print call. (program_state::print): Pass region model to sm_state_map::print. (program_state::dump_to_pp): Use spaces rather than newlines when summarizing. Pass region_model to sm_state_map::print. (ana::selftest::assert_dump_eq): New function. (ASSERT_DUMP_EQ): New macro. (ana::selftest::test_program_state_dumping): New function. (ana::selftest::analyzer_program_state_cc_tests): Call it. * program-state.h (program_state::print): Add model param. * region-model.cc (dump_quoted_tree): New function. (map_region::print_fields): Use dump_quoted_tree rather than %qE to avoid lang-dependent output. (map_region::dump_child_label): Likewise. (region_model::dump_summary_of_map): For SK_REGION, when get_representative_path_var fails, print the region id rather than erroneously printing NULL. * sm.cc (state_machine::get_state_by_name): New function. * sm.h (state_machine::get_state_by_name): New decl.
Diffstat (limited to 'gcc/analyzer/ChangeLog')
-rw-r--r--gcc/analyzer/ChangeLog27
1 files changed, 27 insertions, 0 deletions
diff --git a/gcc/analyzer/ChangeLog b/gcc/analyzer/ChangeLog
index 4a95fa6..84c619e 100644
--- a/gcc/analyzer/ChangeLog
+++ b/gcc/analyzer/ChangeLog
@@ -1,3 +1,30 @@
+2020-03-06 David Malcolm <dmalcolm@redhat.com>
+
+ * analyzer.h (dump_quoted_tree): New decl.
+ * engine.cc (exploded_node::dump_dot): Pass region model to
+ sm_state_map::print.
+ * program-state.cc: Include diagnostic-core.h.
+ (sm_state_map::print): Add "model" param and use it to print
+ representative trees. Only print origin information if non-null.
+ (sm_state_map::dump): Pass NULL for model to print call.
+ (program_state::print): Pass region model to sm_state_map::print.
+ (program_state::dump_to_pp): Use spaces rather than newlines when
+ summarizing. Pass region_model to sm_state_map::print.
+ (ana::selftest::assert_dump_eq): New function.
+ (ASSERT_DUMP_EQ): New macro.
+ (ana::selftest::test_program_state_dumping): New function.
+ (ana::selftest::analyzer_program_state_cc_tests): Call it.
+ * program-state.h (program_state::print): Add model param.
+ * region-model.cc (dump_quoted_tree): New function.
+ (map_region::print_fields): Use dump_quoted_tree rather than
+ %qE to avoid lang-dependent output.
+ (map_region::dump_child_label): Likewise.
+ (region_model::dump_summary_of_map): For SK_REGION, when
+ get_representative_path_var fails, print the region id rather than
+ erroneously printing NULL.
+ * sm.cc (state_machine::get_state_by_name): New function.
+ * sm.h (state_machine::get_state_by_name): New decl.
+
2020-03-04 David Malcolm <dmalcolm@redhat.com>
* region-model.cc (region::validate): Convert model param from ptr