Skip to content
  1. Jan 21, 2009
  2. 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
  3. Dec 05, 2008
  4. Nov 12, 2008
    • Ted Kremenek's avatar
      GRStateRef: · b94d72a0
      Ted Kremenek authored
      - Rename SetSVal to BindLoc
      - Add BindDecl
      - Add BindExpr
      
      GRState:
      - Environment now binds to Stmt* instead of Expr*.  This is needed for processing ObjCForCollectionStmt (essentially the declaration of the the 'element' variable can have an SVal attached to it).
      - BindDecl no longer accepts Expr* for the initialization value; use SVal* instead.
      
      llvm-svn: 59152
      b94d72a0
  5. Nov 07, 2008
  6. Nov 03, 2008
  7. Oct 30, 2008
    • Zhongxing Xu's avatar
      Rename: · a15cfd4d
      Zhongxing Xu authored
       - SetSVal(GRState*, Loc, SVal) => BindLoc
       - SetSVal(GRState*, Expr*, SVal) => BindExpr 
      
      llvm-svn: 58421
      a15cfd4d
  8. Oct 29, 2008
    • Zhongxing Xu's avatar
      Rename: AddDecl => BindDecl · 628ae879
      Zhongxing Xu authored
      BindDecl better describes what the function does:
        - Bind the VarDecl to its memory region
        - Bind the memory region to some initial value.
      
      llvm-svn: 58359
      628ae879
  9. Oct 27, 2008
    • Ted Kremenek's avatar
      Added preliminary support for CompoundLiterals in the static analyzer: · bf263682
      Ted Kremenek authored
      - GRExprEngine::VisitCompoundLiteral...
         (1) visits the initializer list (generating ExplodedNodes)
         (2) creates a CompoundMemRegion for the literal
         (3) creates a new state with the bound literal values using
             GRStateManager::BindCompoundLiteral
      
      - GRStateManager::BindCompoundLiteral simply calls 
        StoreManager::BindCompoundLiteral to get a new store and returns a persistent
        GRState with that store.
      
      - BasicStore::BindCompoundLiteral simply returns the same store, as it
        doesn't handle field sensitivity
        
      - RegionStore::BindCompoundLiteral currently fires an assert (pending discussion
        of how to best implement mappings for CompoundLiteralRegion).
      
      llvm-svn: 58277
      bf263682
  10. Oct 21, 2008
  11. Oct 17, 2008
  12. Oct 16, 2008
  13. Oct 05, 2008
  14. 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
  15. Sep 19, 2008
  16. Sep 13, 2008
    • Ted Kremenek's avatar
      Patch by Csaba Hruska! · 2d470fc0
      Ted Kremenek authored
      "Here is a patch what replaces std::ostream with llvm::raw_ostream. This patch
      covers the AST library, but ignores Analysis lib."
      
      llvm-svn: 56185
      2d470fc0
  17. Aug 29, 2008
  18. Aug 28, 2008
  19. Aug 27, 2008
  20. Aug 24, 2008
  21. Aug 23, 2008
  22. Aug 22, 2008
  23. Aug 20, 2008
  24. Aug 19, 2008
    • Ted Kremenek's avatar
      Patch by Zhongxing Xu! · 67102b28
      Ted Kremenek authored
      This patch extends BasicStoreManager::getInitialStore() to include code that symbolicates input variables.
      It also removes redundant handling of ImplicitParamDecl, since it is a subclass of VarDecl.
      
      llvm-svn: 54993
      67102b28
  25. Aug 17, 2008
  26. Aug 16, 2008
    • Ted Kremenek's avatar
      GRState: · ceba6ead
      Ted Kremenek authored
      - Remove ConstNotEq from GRState/GRStateManager (!= tracking uses GDM instead).
      - GRStateManager now can book-keep "contexts" (e.g., factory objects) for uses
        with data elements stored into the GDM.
      - Refactor pretty-printing of states to use GRState::Printer objects
        exclusively. This removed a huge amount of pretty-printing logic from
        GRExprEngine.
      
      CFRefCount
      - Simplified some API calls based on refinements to the GDM api.
      
      llvm-svn: 54835
      ceba6ead
  27. Aug 14, 2008
  28. Aug 13, 2008
  29. Aug 12, 2008
  30. Aug 08, 2008
    • Ted Kremenek's avatar
      Added AssumeSymGT, AssumeSymGE, AssumeSymLT, AssumeSymLE to add some minor... · 4b132796
      Ted Kremenek authored
      Added AssumeSymGT, AssumeSymGE, AssumeSymLT, AssumeSymLE to add some minor improvements to path-sensitivity.  Right now we basically treat 'x > y' and 'x < y' as implying 'x != y', but this restriction will only inevitably apply to our must rudimentary value tracking component (we'll implement more advanced value reasoning later).
      
      llvm-svn: 54493
      4b132796
  31. Jul 22, 2008
  32. Jul 18, 2008
  33. Jul 17, 2008
Loading