Skip to content
  1. Dec 22, 2010
  2. Dec 08, 2010
  3. 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
  4. Nov 13, 2010
  5. Oct 29, 2010
  6. Sep 18, 2010
  7. 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
  8. Sep 07, 2010
  9. Sep 03, 2010
  10. Sep 02, 2010
  11. 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
  12. Aug 28, 2010
  13. Aug 25, 2010
  14. 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
  15. Aug 23, 2010
  16. 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
  17. Aug 16, 2010
  18. Aug 13, 2010
  19. Aug 07, 2010
  20. Aug 03, 2010
    • Tom Care's avatar
      Changed GRExprEngine to pass down a reference to itself when checkers are... · 44081fbc
      Tom Care authored
      Changed GRExprEngine to pass down a reference to itself when checkers are doing postanalysis. This allows the checker to gather information about the state of the engine when it has finished.
      - Exposed the worklist and BlockAborted flag in GRCoreEngine
      - Changed postanalysis checkers to use the new infrastructure
      
      llvm-svn: 110095
      44081fbc
  21. Aug 02, 2010
  22. Jul 30, 2010
  23. Jul 28, 2010
  24. Jul 27, 2010
  25. Jul 17, 2010
  26. Jul 16, 2010
    • Tom Care's avatar
      Improved false positive rate for the idempotent operations checker and moved... · 826e6b40
      Tom Care authored
      Improved false positive rate for the idempotent operations checker and moved it into the default path-sensitive analysis options.
      - Added checks for static local variables, self assigned parameters, and truncating/extending self assignments
      - Removed command line option (now default with --analyze)
      - Updated test cases to pass with idempotent operation warnings
      
      llvm-svn: 108550
      826e6b40
  27. Jul 07, 2010
Loading