Skip to content
  1. Oct 17, 2008
    • Ted Kremenek's avatar
      Remove lval::FieldOffset, lval::ArrayOffset. These will be replaced with regions. · 3ad391d8
      Ted Kremenek authored
      Remove GRExprEngine::getLVal and RValues::MakeVal.
      Enhance StoreManager "GetLValue" methods to dispatch for specific kinds of lvalue queries, as opposed to interogating the expression tree (GRExprEngine already does this).
      
      Added FIXMEs.  In particular, we no longer "assume" that a base pointer in a field/array access is null (this logic was removed).  Perhaps we should do this when fetching the lvalue for fields and array elements?
      
      llvm-svn: 57657
      3ad391d8
  2. 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
  3. Sep 19, 2008
  4. Aug 13, 2008
  5. Jul 22, 2008
  6. Jul 18, 2008
  7. Jul 16, 2008
  8. Jul 11, 2008
  9. Jul 03, 2008
  10. Jul 02, 2008
  11. Jun 27, 2008
  12. May 12, 2008
  13. May 10, 2008
  14. May 05, 2008
  15. Apr 30, 2008
  16. Apr 23, 2008
    • Ted Kremenek's avatar
      Fixed: <rdar://problem/5881148> · dd43aeee
      Ted Kremenek authored
      Problem:
      
      In the recently refactored VisitDeref (which processes dereferences), we
      were incorrectly skipping the node just generated for the subexpression
      of the dereference.  This was a horrible regression.
      
      llvm-svn: 50176
      dd43aeee
  17. Apr 22, 2008
  18. Apr 18, 2008
  19. Apr 16, 2008
  20. Apr 15, 2008
  21. Apr 14, 2008
  22. Apr 11, 2008
  23. Apr 10, 2008
  24. Apr 09, 2008
    • Ted Kremenek's avatar
      Major refactoring/cleanup of GRExprEngine, ExplodedGraph, and BugReporter. · 7acc3a36
      Ted Kremenek authored
      Bugs are now reported using a combination of "BugType" (previously
      BugDescription) and Bug "BugReport" objects, which are fed to BugReporter (which
      generates PathDiagnostics). This provides a far more modular way of registering
      bug types and plugging in diagnostics.
      
      GRExprEngine now owns its copy of GRCoreEngine, and is not owned by the
      ExplodedGraph.
      
      ExplodedGraph is no longer templated on the "checker", but instead on the state
      contained in the nodes.
      
      llvm-svn: 49453
      7acc3a36
  25. Apr 06, 2008
  26. Apr 03, 2008
Loading