aboutsummaryrefslogtreecommitdiff
path: root/gcc/analyzer/program-state.cc
diff options
context:
space:
mode:
authorDavid Malcolm <dmalcolm@redhat.com>2020-01-30 16:59:15 -0500
committerDavid Malcolm <dmalcolm@redhat.com>2020-01-30 19:28:43 -0500
commit42f36563ef655db48d5fda60cd7f3eac9650dade (patch)
treea0d06ebf534275981a4ebd134a535ad3d208e977 /gcc/analyzer/program-state.cc
parentebe9174e940c94e99cd688a05309833ae64a998b (diff)
downloadgcc-42f36563ef655db48d5fda60cd7f3eac9650dade.zip
gcc-42f36563ef655db48d5fda60cd7f3eac9650dade.tar.gz
gcc-42f36563ef655db48d5fda60cd7f3eac9650dade.tar.bz2
analyzer: add extrinsic_state::dump
gcc/analyzer/ChangeLog: * program-state.cc (extrinsic_state::dump_to_pp): New. (extrinsic_state::dump_to_file): New. (extrinsic_state::dump): New. * program-state.h (extrinsic_state::dump_to_pp): New decl. (extrinsic_state::dump_to_file): New decl. (extrinsic_state::dump): New decl. * sm.cc: Include "pretty-print.h". (state_machine::dump_to_pp): New. * sm.h (state_machine::dump_to_pp): New decl.
Diffstat (limited to 'gcc/analyzer/program-state.cc')
-rw-r--r--gcc/analyzer/program-state.cc38
1 files changed, 38 insertions, 0 deletions
diff --git a/gcc/analyzer/program-state.cc b/gcc/analyzer/program-state.cc
index ead62a5..4c0b9a8 100644
--- a/gcc/analyzer/program-state.cc
+++ b/gcc/analyzer/program-state.cc
@@ -59,6 +59,44 @@ along with GCC; see the file COPYING3. If not see
namespace ana {
+/* class extrinsic_state. */
+
+/* Dump a multiline representation of this state to PP. */
+
+void
+extrinsic_state::dump_to_pp (pretty_printer *pp) const
+{
+ pp_printf (pp, "extrinsic_state: %i checker(s)\n", get_num_checkers ());
+ unsigned i;
+ state_machine *checker;
+ FOR_EACH_VEC_ELT (m_checkers, i, checker)
+ {
+ pp_printf (pp, "m_checkers[%i]: %qs\n", i, checker->get_name ());
+ checker->dump_to_pp (pp);
+ }
+}
+
+/* Dump a multiline representation of this state to OUTF. */
+
+void
+extrinsic_state::dump_to_file (FILE *outf) const
+{
+ pretty_printer pp;
+ if (outf == stderr)
+ pp_show_color (&pp) = pp_show_color (global_dc->printer);
+ pp.buffer->stream = outf;
+ dump_to_pp (&pp);
+ pp_flush (&pp);
+}
+
+/* Dump a multiline representation of this state to stderr. */
+
+DEBUG_FUNCTION void
+extrinsic_state::dump () const
+{
+ dump_to_file (stderr);
+}
+
/* class sm_state_map. */
/* sm_state_map's ctor. */