On Wed, 2020-01-08 at 04:02 -0500, David Malcolm wrote: > Needs review. > > Changed in v5: > - update ChangeLog path > - updated copyright years to include 2020 > > Changed in v4: > - Remove include of gcc-plugin.h, reworking includes accordingly. > - Wrap everything in #if ENABLE_ANALYZER > - Remove /// comment lines > - Add support for global state: > - https://gcc.gnu.org/ml/gcc-patches/2019-12/msg00217.html > - Rework logging to avoid exploded_graph multiple-inheritance (moving > log_user base to a member) > > This patch introduces classes for tracking the state at a particular > path of analysis. > > gcc/analyzer/ChangeLog: > * program-state.cc: New file. > * program-state.h: New file. > > > > > > diff --git a/gcc/analyzer/program-state.h b/gcc/analyzer/program-state.h > new file mode 100644 > index 000000000000..be83d32b8833 > --- /dev/null > +++ b/gcc/analyzer/program-state.h > @@ -0,0 +1,365 @@ > +/* Classes for representing the state of interest at a given path of > analysis. > + Copyright (C) 2019-2020 Free Software Foundation, Inc. > + Contributed by David Malcolm <dmalc...@redhat.com>. > + > +This file is part of GCC. > + > +GCC is free software; you can redistribute it and/or modify it > +under the terms of the GNU General Public License as published by > +the Free Software Foundation; either version 3, or (at your option) > +any later version. > + > +GCC is distributed in the hope that it will be useful, but > +WITHOUT ANY WARRANTY; without even the implied warranty of > +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU > +General Public License for more details. > + > +You should have received a copy of the GNU General Public License > +along with GCC; see the file COPYING3. If not see > +<http://www.gnu.org/licenses/>;. */ > + > +#ifndef GCC_ANALYZER_PROGRAM_STATE_H > +#define GCC_ANALYZER_PROGRAM_STATE_H > + > +#include "analyzer/sm.h" > +#include "analyzer/region-model.h" Not as bad as the previously reviewed patch. But let's see if we can get those out of here and into the appropriate source files.
OK with the #includes moved to the right places. jeff