Skip to content
  1. Mar 25, 2009
  2. Mar 20, 2009
    • Ted Kremenek's avatar
      GRExprEngine: · 6b31533a
      Ted Kremenek authored
      - Conjure symbols at '--' and '++' unary operations
      - Add utility method SVal::GetConjuredSymbolVal() and constify some arguments
        along the way.
      
      llvm-svn: 67395
      6b31533a
  3. Mar 18, 2009
    • Ted Kremenek's avatar
      Fix crash reported in <rdar://problem/6695527>. We now have · b36e01d8
      Ted Kremenek authored
      SVal::GetRValueSymbolVal do the checking if we can symbolicate a type instead of
      having BasicStoreManager do it (which wasn't always doing the check
      consistently). Having this check in SVal::GetRValueSymbolVal keeps the check in
      one centralized place.
      
      llvm-svn: 67245
      b36e01d8
  4. Mar 10, 2009
  5. Mar 03, 2009
  6. Jan 30, 2009
    • Ted Kremenek's avatar
      Fix a couple bugs: · 7594e2a5
      Ted Kremenek authored
      - NonLoc::MakeVal() would use sizeof(unsigned) (literally) instead of consulting
        ASTContext for the size (in bits) of 'int'. While it worked, it was a
        conflation of concepts and using ASTContext.IntTy is 100% correct.
      - RegionStore::getSizeInElements() no longer assumes that a VarRegion has the
        type "ConstantArray", and handles the case when uses use ordinary variables
        as if they were arrays.
      - Fixed ElementRegion::getRValueType() to just return the rvalue type of its
        "array region" in the case the array didn't have ArrayType.
      - All of this fixes <rdar://problem/6541136>
      
      llvm-svn: 63347
      7594e2a5
  7. Jan 22, 2009
    • Ted Kremenek's avatar
      Static analyzer: Remove a bunch of outdated SymbolData objects and · 74040833
      Ted Kremenek authored
      their associated APIs.  We no longer need separate SymbolData objects
      for fields, variables, etc.  Instead, we now associated symbols with
      the "rvalue" of a MemRegion (i.e., the value stored at that region).
      Now we only have two kinds of SymbolData objects: SymbolRegionRValue
      and SymbolConjured.
      
      This cleanup also makes the distinction between a SymbolicRegion and a
      symbolic value that is a location much clearer.  A SymbolicRegion
      represents a chunk of symbolic memory, while a symbolic location is
      just a "pointer" with different possible values.  Without any specific
      knowledge, a symbolic location resolves (i.e., via a dereference) to a
      SymbolicRegion.  In the future, when we do better alias reasoning, a
      symbolic location can become an alias for another location, thus
      merging the constraints on the referred SymbolicRegion with the other
      region.
      
      llvm-svn: 62769
      74040833
  8. Dec 20, 2008
    • Zhongxing Xu's avatar
      Lazy bingding for region-store manager. · af7415ff
      Zhongxing Xu authored
      * Now Bind() methods take and return GRState* because binding could
        also alter GDM.
      * No variables are initialized except those declared with initial
        values.
      * failed C test cases are due to bugs in RemoveDeadBindings(),
      which removes constraints that is still alive. This will be fixed in later
      patch.
      * default value of array and struct regions will be implemented in later patch.
      
      llvm-svn: 61274
      af7415ff
  9. Dec 09, 2008
  10. Dec 05, 2008
  11. Nov 24, 2008
  12. Nov 22, 2008
  13. Nov 19, 2008
  14. Nov 15, 2008
  15. Oct 30, 2008
  16. Oct 28, 2008
  17. Oct 26, 2008
  18. Oct 24, 2008
  19. Oct 21, 2008
    • Zhongxing Xu's avatar
      Rename: · 7ff32d09
      Zhongxing Xu authored
        RValues.h/cpp => SVals.h/cpp
      
      llvm-svn: 57893
      7ff32d09
  20. Oct 17, 2008
  21. Oct 16, 2008
  22. Oct 04, 2008
    • Ted Kremenek's avatar
      This is a big patch, but the functionality change is small and the rest of the... · 5ca90a24
      Ted Kremenek authored
      This is a big patch, but the functionality change is small and the rest of the patch consists of deltas due to API changes.
      
      This patch overhauls the "memory region" abstraction that was prototyped (but never really used) as part of the Store.h.  This patch adds MemRegion.h and MemRegion.cpp, which defines the class MemRegion and its subclasses.  This classes serve to define an abstract representation of memory, with regions being layered on other regions to to capture the relationships between fields and variables, variables and the address space they are allocated in, and so on.  
      
      The main motivation of this patch is that key parts of the analyzer assumed that all value bindings were to VarDecls.  In the future this won't be the case, and this patch removes lval::DeclVal and replaces it with lval::MemRegionVal.  Now all pieces of the analyzer must reason about abstract memory blocks instead of just variables.
      
      There should be no functionality change from this patch, but it opens the door for significant improvements to the analyzer such as field-sensitivity and object-sensitivity, both which were on hold until the memory abstraction got generalized.
      
      The memory region abstraction also allows type-information to literally be affixed to a memory region.  This will allow the some now redundant logic to be removed from the retain/release checker.
      
      llvm-svn: 57042
      5ca90a24
  23. Oct 01, 2008
  24. Aug 24, 2008
  25. Aug 17, 2008
  26. Aug 11, 2008
    • Daniel Dunbar's avatar
      More #include cleaning · 6e8aa537
      Daniel Dunbar authored
       - Drop {Decl.h,DeclObjC.h,IdentifierTable.h} from Expr.h
       - Moved Sema::getCurMethodDecl() out of line (dependent on
         ObjCMethodDecl via dyn_cast).
      
      llvm-svn: 54629
      6e8aa537
  27. Jul 18, 2008
  28. May 01, 2008
  29. Apr 30, 2008
  30. Apr 22, 2008
Loading