Skip to content
  1. Feb 15, 2011
  2. Feb 14, 2011
  3. Feb 12, 2011
  4. Feb 10, 2011
  5. Feb 08, 2011
  6. Jan 11, 2011
  7. Dec 23, 2010
  8. Dec 22, 2010
  9. Dec 08, 2010
  10. 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
  11. Nov 13, 2010
  12. Oct 29, 2010
  13. Sep 18, 2010
  14. 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
    • Tom Care's avatar
      Simplified reachability checking in IdempotentOperationChecker and added a... · 68df12f0
      Tom Care authored
      Simplified reachability checking in IdempotentOperationChecker and added a helper function for path display.
      - Created private class CFGReachabilityAnalysis, which provides cached reachability lookups in the CFG
      - Simplified PathWasCompletelyAnalyzed to use the new reachability class
      - Added getLastRelevantNodes function for future use with path displaying in BugReporter
      
      llvm-svn: 113465
      68df12f0
  15. Sep 07, 2010
  16. Sep 03, 2010
  17. Sep 02, 2010
  18. Aug 30, 2010
    • Tom Care's avatar
      Adjusted the semantics of assign checking in IdempotentOperationChecker · 9026d4b4
      Tom Care authored
      - Fixed a regression where assigning '0' would be reported
      - Changed the way self assignments are filtered to allow constant testing
      - Added a test case for assign ops
      - Fixed one test case where a function pointer was not considered constant
      - Fixed test cases relating to 0 assignment
      
      llvm-svn: 112501
      9026d4b4
  19. Aug 28, 2010
  20. Aug 25, 2010
  21. Aug 24, 2010
    • Tom Care's avatar
      Improvements to IdempotentOperationChecker and its use of PseudoConstantAnalysis · a4603117
      Tom Care authored
      - Added wasReferenced function to PseudoConstantAnalysis to determine if a variable was ever referenced in a function (outside of a self-assignment)
      - BlockDeclRefExpr referenced variables are now explicitly added to the non-constant list
      - Remove unnecessary ignore of implicit casts
      - Generalized parameter self-assign detection to detect deliberate self-assigns of variables to avoid unused variable warnings
      - Updated test cases with deliberate self-assignments
      - Fixed bug with C++ references and pseudoconstants
      - Added test case for C++ references and pseudoconstants
      
      llvm-svn: 111965
      a4603117
  22. Aug 23, 2010
  23. Aug 18, 2010
    • Tom Care's avatar
      Added psuedo-constant analysis and integrated it into the false positive... · b9933f36
      Tom Care authored
      Added psuedo-constant analysis and integrated it into the false positive reduction stage in IdempotentOperationChecker.
      - Renamed IdempotentOperationChecker::isConstant to isConstantOrPseudoConstant to better reflect the function
      - Changed IdempotentOperationChecker::PreVisitBinaryOperator to only run 'CanVary' once on undefined assumptions
      - Created new PsuedoConstantAnalysis class and added it to AnalysisContext
      - Changed IdempotentOperationChecker to exploit the new analysis
      - Updated tests with psuedo-constants
      - Added check to IdempotentOperationChecker to see if a Decl is const qualified
      
      llvm-svn: 111426
      b9933f36
  24. Aug 16, 2010
Loading