Skip to content
Snippets Groups Projects
  1. Feb 18, 2012
  2. Jul 29, 2011
  3. Feb 28, 2011
  4. Feb 25, 2011
  5. Feb 15, 2011
  6. Jun 17, 2010
  7. Feb 05, 2010
  8. Jan 09, 2010
  9. Dec 15, 2009
  10. Dec 14, 2009
  11. Nov 26, 2009
  12. Nov 17, 2009
  13. Nov 08, 2009
  14. Jul 29, 2009
  15. Jul 10, 2009
  16. Jul 06, 2009
  17. Jul 03, 2009
  18. Jul 02, 2009
  19. Jun 26, 2009
    • Ted Kremenek's avatar
      Introduce a new concept to the static analyzer: SValuator. · 6c07bdba
      Ted Kremenek authored
      GRTransferFuncs had the conflated role of both constructing SVals (symbolic
      expressions) as well as handling checker-specific logic. Now SValuator has the
      role of constructing SVals from expressions and GRTransferFuncs just handles
      checker-specific logic. The motivation is by separating these two concepts we
      will be able to much more easily create richer constraint-generating logic
      without coupling it to the main checker transfer function logic.
      
      We now have one implementation of SValuator: SimpleSValuator.
      
      SimpleSValuator is essentially the SVal-related logic that was in GRSimpleVals
      (which is removed in this patch). This includes the logic for EvalBinOp,
      EvalCast, etc. Because SValuator has a narrower role than the old
      GRTransferFuncs, the interfaces are much simpler, and so is the implementation
      of SimpleSValuator compared to GRSimpleVals. I also did a line-by-line review of
      SVal-related logic in GRSimpleVals and cleaned it up while moving it over to
      SimpleSValuator.
      
      As a consequence of removing GRSimpleVals, there is no longer a
      '-checker-simple' option. The '-checker-cfref' did everything that option did
      but also ran the retain/release checker. Of course a user may not always wish to
      run the retain/release checker, nor do we wish core analysis logic buried in the
      checker-specific logic. The next step is to refactor the logic in CFRefCount.cpp
      to separate out these pieces into the core analysis engine.
      
      
      git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@74229 91177308-0d34-0410-b5e6-96231b3b80d8
      6c07bdba
  20. May 16, 2009
  21. Mar 24, 2009
  22. Feb 18, 2009
  23. Feb 17, 2009
  24. Jan 22, 2009
  25. Jan 21, 2009
  26. Dec 13, 2008
    • Ted Kremenek's avatar
      MemRegion: · 6eddeb15
      Ted Kremenek authored
      - Overhauled the notion of "types" for TypedRegions.  We now distinguish between the "lvalue" of a region (via getLValueRegion()) and the "rvalue" of a region (va getRValueRegion()).  Since a region represents a chunk of memory it has both, but we were conflating these concepts in some cases, leading to some insidious bugs.
      - Removed AnonPointeeType, partially because it is unused and because it doesn't have a clear notion of lvalue vs rvalue type.  We can add it back once there is a need for it and we can resolve its role with these concepts.
      
      StoreManager:
      - Overhauled StoreManager::CastRegion.  It expects an *lvalue* type for a region.  This is actually what motivated the overhaul to the MemRegion type mechanism.  It also no longer returns an SVal; we can just return a MemRegion*.
      - BasicStoreManager::CastRegion now overlays an "AnonTypedRegion" for pointer-pointer casts.  This matches with the MemRegion changes.
      - Similar changes to RegionStore, except I've added a bunch of FIXMEs where it wasn't 100% clear where we should use TypedRegion::getRValueRegion() or TypedRegion::getLValueRegion().
      
      AuditCFNumberCreate check:
      - Now blasts through AnonTypedRegions that may layer the original memory region, thus checking if the actually memory block is of the appropriate type.  This change was needed to work with the changes to StoreManager::CastRegion.
      
      GRExprEngine::VisitCast:
      - Conform to the new interface of StoreManager::CastRegion.
      
      Tests:
      - None of the analysis tests fail now for using the "basic store".
      - Disabled the tests 'array-struct.c' and 'rdar-6442306-1.m' pending further testing and bug fixing.
      
      
      
      git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@60995 91177308-0d34-0410-b5e6-96231b3b80d8
      6eddeb15
    • Ted Kremenek's avatar
      Temporarily XFAIL these tests. · cfec1db6
      Ted Kremenek authored
      git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@60991 91177308-0d34-0410-b5e6-96231b3b80d8
      cfec1db6
  27. Nov 07, 2008
  28. Nov 02, 2008
  29. Oct 31, 2008
  30. Oct 30, 2008
  31. Oct 27, 2008
Loading