Skip to content
  1. 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
  2. Aug 16, 2011
  3. Apr 23, 2011
  4. Apr 12, 2011
  5. Apr 02, 2011
  6. Mar 19, 2011
  7. Mar 15, 2011
  8. Mar 11, 2011
  9. Mar 01, 2011
  10. Feb 23, 2011
  11. 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
  12. Feb 15, 2011
  13. Feb 14, 2011
  14. Feb 12, 2011
  15. Feb 10, 2011
  16. Feb 08, 2011
  17. Jan 11, 2011
  18. Dec 23, 2010
  19. Dec 22, 2010
  20. Dec 08, 2010
  21. 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
  22. Nov 13, 2010
  23. Oct 29, 2010
  24. Sep 18, 2010
  25. Sep 09, 2010
    • Ted Kremenek's avatar
      Rename GRState::getSVal() -> getRawSVal() and getSimplifiedSVal() -> getSVal(). · 5f256da8
      Ted Kremenek authored
      The end result is now we eagarly constant-fold symbols in the analyzer that are perfectly constrained
      to be a constant value.  This allows us to recover some path-sensitivity in some cases by lowering
      the required level of reasoning power needed to evaluate some expressions.
      
      The net win from this change is that the false positive in PR 8015 is fixed, and we also
      find more idempotent operations bugs.
      
      We do, however, regress with the BugReporterVisitors, which need to be modified to understand
      this constant folding (and look past it).  This causes some diagnostic regressions in plist-output.m
      which will get addressed in a future patch.  plist-output.m is now marked XFAIL, while
      plist-output-alternate.m now tests that the plist output is working, but with the suboptimal
      diagnostics.  This second test file will eventually be removed.
      
      llvm-svn: 113477
      5f256da8
Loading