Skip to content
  1. Oct 17, 2008
  2. Oct 16, 2008
  3. Oct 05, 2008
  4. 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
  5. Sep 19, 2008
  6. 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
  7. Aug 29, 2008
  8. Aug 28, 2008
  9. Aug 27, 2008
  10. Aug 24, 2008
  11. Aug 23, 2008
  12. Aug 22, 2008
  13. Aug 20, 2008
  14. 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
  15. Aug 17, 2008
  16. 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
  17. Aug 14, 2008
  18. Aug 13, 2008
  19. Aug 12, 2008
  20. 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
  21. Jul 22, 2008
  22. Jul 18, 2008
  23. Jul 17, 2008
  24. Jul 11, 2008
  25. Jul 10, 2008
  26. Jul 08, 2008
    • Ted Kremenek's avatar
      Initial work on splitting the ValueState into an Environment, Store, and · 852ed373
      Ted Kremenek authored
      Constraints. These concepts are already present in the current ValueState, but
      the implementation is monolothic. Making ValueState more modular opens up new
      design choices for customizing the analysis engine.
      
      In the context of the analysis engine, the "Environment" is the binding between
      Expr* (expressions) and intermediate symbolic values (RValues).
      
      llvm-svn: 53252
      852ed373
  27. Jul 07, 2008
  28. May 01, 2008
  29. Apr 30, 2008
  30. Apr 29, 2008
    • Ted Kremenek's avatar
      Major rewrite/refactoring of static analysis engine. We now use · fa5a3d0f
      Ted Kremenek authored
      EvalStore/EvalLoad to handle all loads/stores from symbolic memory, allowing us
      to do checks for null dereferences, etc., at any arbitrary load/store (these
      were missed checks before). This also resulted in some major cleanups, some
      conceptual, and others just in the structure of the code.
      
      This temporarily introduces a regression in the test suite (null-deref-ps.c)
      before I add a new LVal type for structure fields.
      
      llvm-svn: 50443
      fa5a3d0f
  31. Apr 25, 2008
Loading