Skip to content
  1. Dec 22, 2010
  2. Oct 21, 2010
  3. Jul 06, 2010
  4. Jan 25, 2010
    • 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
  5. Nov 28, 2009
  6. Nov 03, 2009
  7. Sep 09, 2009
  8. Aug 21, 2009
  9. Jul 14, 2009
  10. Jun 19, 2009
  11. Feb 05, 2009
    • Ted Kremenek's avatar
      Overhaul BugReporter interface and implementation. The new interface cleans up · fc5d067e
      Ted Kremenek authored
      the ownership of BugTypes and BugReports. Now BugReports are owned by BugTypes,
      and BugTypes are owned by the BugReporter object.
      
      The major functionality change in this patch is that reports are not immediately
      emitted by a call to BugReporter::EmitWarning (now called EmitReport), but
      instead of queued up in report "equivalence classes". When
      BugReporter::FlushReports() is called, it emits one diagnostic per report
      equivalence class. This provides a nice cleanup with the caching of reports as
      well as enables the BugReporter engine to select the "best" path for reporting a
      path-sensitive bug based on all the locations in the ExplodedGraph that the same
      bug could occur.
      
      Along with this patch, Leaks are now coalesced into a common equivalence class
      by their allocation site, and the "summary" diagnostic for leaks now reports the
      allocation site as the location of the bug (this may later be augmented to also
      provide an example location where the leak occurs).
      
      llvm-svn: 63796
      fc5d067e
  12. Sep 18, 2008
  13. Aug 13, 2008
  14. Jul 10, 2008
  15. Jun 27, 2008
  16. Mar 27, 2008
Loading