Skip to content
  1. Jan 06, 2012
    • Ted Kremenek's avatar
      [analyzer] Make the entries in 'Environment' context-sensitive by making entries map from · 632e3b7e
      Ted Kremenek authored
      (Stmt*,LocationContext*) pairs to SVals instead of Stmt* to SVals.
      
      This is needed to support basic IPA via inlining.  Without this, we cannot tell
      if a Stmt* binding is part of the current analysis scope (StackFrameContext) or
      part of a parent context.
      
      This change introduces an uglification of the use of getSVal(), and thus takes
      two steps forward and one step back.  There are also potential performance implications
      of enlarging the Environment.  Both can be addressed going forward by refactoring the
      APIs and optimizing the internal representation of Environment.  This patch
      mainly introduces the functionality upon when we want to build upon (and clean up).
      
      llvm-svn: 147688
      632e3b7e
  2. Oct 24, 2011
  3. Oct 04, 2011
  4. Aug 20, 2011
    • Anna Zaks's avatar
      Static Analyzer Diagnostics: Kill the addVisitorCreator(callbackTy, void*) API... · f86615ca
      Anna Zaks authored
      Static Analyzer Diagnostics: Kill the addVisitorCreator(callbackTy, void*) API in favor of addVisitor(BugReporterVisitor*).
      
      1) Create a header file to expose the predefined visitors. And move the parent(BugReporterVisitor) there as well.
      
      2) Remove the registerXXXVisitor functions - the Visitor constructors/getters can be used now to create the object. One exception is registerVarDeclsLastStore(), which registers more then one visitor, so make it static member of FindLastStoreBRVisitor.
      
      3) Modify all the checkers to use the new API.
      
      llvm-svn: 138126
      f86615ca
  5. Aug 18, 2011
    • Anna Zaks's avatar
      Remove EnhancedBugReport and RangedBugReport - pull all the extra... · 3a6bdf8f
      Anna Zaks authored
      Remove EnhancedBugReport and RangedBugReport - pull all the extra functionality they provided into their parent BugReport. The only functional changes are: made getRanges() non const - it adds default range to Ranges if none are supplied, made getStmt() private, which was another FIXME.
      
      llvm-svn: 137894
      3a6bdf8f
  6. Aug 16, 2011
  7. Apr 23, 2011
  8. Apr 12, 2011
  9. Apr 02, 2011
  10. Mar 19, 2011
  11. Mar 15, 2011
  12. Mar 11, 2011
  13. Mar 01, 2011
  14. Feb 23, 2011
  15. Feb 17, 2011
    • Argyrios Kyrtzidis's avatar
      [analyzer] Pass CheckerManager to the registration functions. · 507ff53e
      Argyrios Kyrtzidis authored
      llvm-svn: 125777
      507ff53e
    • John McCall's avatar
      Change the representation of GNU ?: expressions to use a different expression · c07a0c7e
      John McCall authored
      class and to bind the shared value using OpaqueValueExpr.  This fixes an
      unnoticed problem with deserialization of these expressions where the
      deserialized form would lose the vital pointer-equality trait;  or rather,
      it fixes it because this patch also does the right thing for deserializing
      OVEs.
      
      Change OVEs to not be a "temporary object" in the sense that copy elision is
      permitted.
      
      This new representation is not totally unawkward to work with, but I think
      that's really part and parcel with the semantics we're modelling here.  In
      particular, it's much easier to fix things like the copy elision bug and to
      make the CFG look right.
      
      I've tried to update the analyzer to deal with this in at least some          
      obvious cases, and I think we get a much better CFG out, but the printing
      of OpaqueValueExprs probably needs some work.
      
      llvm-svn: 125744
      c07a0c7e
  16. Feb 15, 2011
  17. Feb 14, 2011
  18. Feb 12, 2011
  19. Feb 10, 2011
  20. Feb 08, 2011
  21. Jan 11, 2011
  22. Dec 23, 2010
  23. Dec 22, 2010
  24. Dec 08, 2010
  25. Dec 04, 2010
    • John McCall's avatar
      Although we currently have explicit lvalue-to-rvalue conversions, they're · 34376a68
      John McCall authored
      not actually frequently used, because ImpCastExprToType only creates a node
      if the types differ.  So explicitly create an ICE in the lvalue-to-rvalue
      conversion code in DefaultFunctionArrayLvalueConversion() as well as several
      other new places, and consistently deal with the consequences throughout the
      compiler.
      
      In addition, introduce a new cast kind for loading an ObjCProperty l-value,
      and make sure we emit those nodes whenever an ObjCProperty l-value appears
      that's not on the LHS of an assignment operator.
      
      This breaks a couple of rewriter tests, which I've x-failed until future
      development occurs on the rewriter.
      
      Ted Kremenek kindly contributed the analyzer workarounds in this patch.
      
      llvm-svn: 120890
      34376a68
  26. Nov 13, 2010
Loading