Skip to content
  1. Dec 22, 2010
  2. Dec 20, 2010
  3. Dec 01, 2010
  4. Nov 26, 2010
  5. Sep 09, 2010
    • Gabor Greif's avatar
      do not bind temporaries to non-const references · 230ddf37
      Gabor Greif authored
      this fixes all analyser test failures in my gcc34-based
      environment
      
      how the cast result could bind to the non-const ref is
      somewhat mysterious and remains to be investigated; to
      avoid similar miscompilations (by gcc34 only?)
      
      llvm-svn: 113480
      230ddf37
  6. Aug 11, 2010
  7. Mar 27, 2010
  8. Jan 25, 2010
    • Ted Kremenek's avatar
    • Ted Kremenek's avatar
      Split libAnalysis into two libraries: libAnalysis and libChecker. · d6b87086
      Ted Kremenek authored
      (1) libAnalysis is a generic analysis library that can be used by
          Sema.  It defines the CFG, basic dataflow analysis primitives, and
          inexpensive flow-sensitive analyses (e.g. LiveVariables).
      
      (2) libChecker contains the guts of the static analyzer, incuding the
          path-sensitive analysis engine and domain-specific checks.
      
      Now any clients that want to use the frontend to build their own tools
      don't need to link in the entire static analyzer.
      
      This change exposes various obvious cleanups that can be made to the
      layout of files and headers in libChecker.  More changes pending.  :)
      
      This change also exposed a layering violation between AnalysisContext
      and MemRegion.  BlockInvocationContext shouldn't explicitly know about
      BlockDataRegions.  For now I've removed the BlockDataRegion* from
      BlockInvocationContext (removing context-sensitivity; although this
      wasn't used yet).  We need to have a better way to extend
      BlockInvocationContext (and any LocationContext) to add
      context-sensitivty.
      
      llvm-svn: 94406
      d6b87086
  9. Jan 18, 2010
  10. Nov 28, 2009
  11. Nov 24, 2009
  12. Nov 23, 2009
    • Ted Kremenek's avatar
      Clean up the Checker API a little more, resolving some hidden bugs · f5735157
      Ted Kremenek authored
      along the way.  Important changes:
      
      1) To generate a sink node, use GenerateSink(); GenerateNode() is for
      generating regular transitions.  This makes the API clearer and also
      allows us to use the 'bool' option to GenerateNode() for a different
      purpose.
      
      2) GenerateNode() now automatically adds the generated node to the
      destination ExplodedNodeSet (autotransition) unless the client
      specifies otherwise with a bool flag.  Several checkers did not call
      'addTransition()' after calling 'GenerateNode()', causing the
      simulation path to be prematurely culled when a non-fail stop bug was
      encountered.
      
      3) Add variants of GenerateNode()/GenerateSink() that take neither a
      Stmt* or a GRState*; most callers of GenerateNode() just pass in the
      same Stmt* as provided when the CheckerContext object is created; we
      can just use that the majority of the time.  This cleanup also allows
      us to potentially coelesce the APIs for evaluating branches and
      end-of-paths (which currently directly use builders).
      
      4) addTransition() no longer needs to be called except for a few
      cases.  We now have a variant of addTransition() that takes a
      GRState*; this allows one to propagate the updated state without
      caring about generating a new node explicitly.  This nicely cleaned up
      a bunch of cases that called autoTransition() with a bunch of
      conditional logic surround the call (that common logic has now been
      swallowed up by addTransition() itself).
      
      llvm-svn: 89707
      f5735157
  13. Nov 14, 2009
  14. Nov 12, 2009
  15. Nov 11, 2009
  16. Nov 06, 2009
Loading