Skip to content
  1. Dec 24, 2009
  2. Dec 23, 2009
  3. Dec 22, 2009
  4. Dec 21, 2009
  5. Dec 19, 2009
  6. Dec 18, 2009
  7. Dec 17, 2009
  8. Dec 16, 2009
    • Ted Kremenek's avatar
      Temporarily revert 91553. · 3ab9e4cf
      Ted Kremenek authored
      llvm-svn: 91557
      3ab9e4cf
    • Ted Kremenek's avatar
      Remove use of ObjCObjectRegion from BasicStoreManager. · 023bceaf
      Ted Kremenek authored
      llvm-svn: 91553
      023bceaf
    • Zhongxing Xu's avatar
      Add a new kind of region: CXXObjectRegion. Currently it has only one · 6df9f54d
      Zhongxing Xu authored
      attribute: the object type. 
      Add initial support for visiting CXXThisExpr.
      Fix a bunch of 80-col violations.
      
      llvm-svn: 91535
      6df9f54d
    • Ted Kremenek's avatar
      Teach RetainSummaryManager::getSummary(FunctionDecl* FD) that... · 9bcc2644
      Ted Kremenek authored
      Teach RetainSummaryManager::getSummary(FunctionDecl* FD) that 'FD->getIdentifier()' will not always return a non-null IdentifierInfo*.
      
      llvm-svn: 91512
      9bcc2644
    • Ted Kremenek's avatar
    • Ted Kremenek's avatar
      Teach NoReturnFunctionChecker that FunctionDecl::getIdentifier() is not... · 85763180
      Ted Kremenek authored
      Teach NoReturnFunctionChecker that FunctionDecl::getIdentifier() is not guaranteed to return a non-null IdentifierInfo*.
      
      llvm-svn: 91510
      85763180
    • Ted Kremenek's avatar
      Add (initial?) static analyzer support for handling C++ references. · 4cad5fc0
      Ted Kremenek authored
      This change was a lot bigger than I originally anticipated; among
      other things it requires us storing more information in the CFG to
      record what block-level expressions need to be evaluated as lvalues.
      
      The big change is that CFGBlocks no longer contain Stmt*'s by
      CFGElements.  Currently CFGElements just wrap Stmt*, but they also
      store a bit indicating whether the block-level expression should be
      evalauted as an lvalue.  DeclStmts involving the initialization of a
      reference require us treating the initialization expression as an
      lvalue, even though that information isn't recorded in the AST.
      Conceptually this change isn't that complicated, but it required
      bubbling up the data through the CFGBuilder, to GRCoreEngine, and
      eventually to GRExprEngine.
      
      The addition of CFGElement is also useful for when we want to handle
      more control-flow constructs or other data we want to keep in the CFG
      that isn't represented well with just a block of statements.
      
      In GRExprEngine, this patch introduces logic for evaluating the
      lvalues of references, which currently retrieves the internal "pointer
      value" that the reference represents.  EvalLoad does a two stage load
      to catch null dereferences involving an invalid reference (although
      this could possibly be caught earlier during the initialization of a
      reference).
      
      Symbols are currently symbolicated using the reference type, instead
      of a pointer type, and special handling is required creating
      ElementRegions that layer on SymbolicRegions (see the changes to
      RegionStoreManager).
      
      Along the way, the DeadStoresChecker also silences warnings involving
      dead stores to references.  This was the original change I introduced
      (which I wrote test cases for) that I realized caused GRExprEngine to
      crash.
      
      llvm-svn: 91501
      4cad5fc0
    • Ted Kremenek's avatar
      Remove ValueManager::getRegionValueSymbolValOrUnknown(). It was just extra... · 9158fb74
      Ted Kremenek authored
      Remove ValueManager::getRegionValueSymbolValOrUnknown().  It was just extra veneer on top of getRegionValueSymbolVal().
      
      llvm-svn: 91471
      9158fb74
  9. Dec 15, 2009
  10. Dec 14, 2009
Loading