diff options
author | David Malcolm <dmalcolm@redhat.com> | 2020-01-30 16:59:15 -0500 |
---|---|---|
committer | David Malcolm <dmalcolm@redhat.com> | 2020-01-30 19:28:43 -0500 |
commit | 42f36563ef655db48d5fda60cd7f3eac9650dade (patch) | |
tree | a0d06ebf534275981a4ebd134a535ad3d208e977 /gcc/analyzer/program-state.cc | |
parent | ebe9174e940c94e99cd688a05309833ae64a998b (diff) | |
download | gcc-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.cc | 38 |
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. */ |