Skip to content
  1. Nov 08, 2011
    • Anna Zaks's avatar
      [analyzer] Remove redundant check from DivZeroChecker · 0d58033b
      Anna Zaks authored
      Analysis by Ted:
      "
          if (stateZero && !stateNotZero) {
      
      is checking to see if:
      
        (A)  "it is possible for the value to be zero"   (stateZero)
      
          AND
      
        (B) "it is not possible for the value to be non-zero"  (!stateNotZero)
      
      That said, the only way for both B to be true AND A to be false is if the path is completely infeasible by the time we reach the divide-by-zero check.  For the most part (all cases?), such cases should automatically get pruned out at branches (i.e., an infeasible path gets dropped), which is the case in our tests.  So the question is whether or not such an infeasible path might not get dropped earlier?  I can't envision any right now.
      
      Indeed, the rest of the checker assumes that if the bug condition didn't fire then 'stateNotZero' is non-NULL:
      
          C.addTransition(stateNotZero);
      "
      
      llvm-svn: 144114
      0d58033b
  2. Nov 07, 2011
  3. Nov 06, 2011
    • John McCall's avatar
      Change the AST representation of operations on Objective-C · fe96e0b6
      John McCall authored
      property references to use a new PseudoObjectExpr
      expression which pairs a syntactic form of the expression
      with a set of semantic expressions implementing it.
      This should significantly reduce the complexity required
      elsewhere in the compiler to deal with these kinds of
      expressions (e.g. IR generation's special l-value kind,
      the static analyzer's Message abstraction), at the lower
      cost of specifically dealing with the odd AST structure
      of these expressions.  It should also greatly simplify
      efforts to implement similar language features in the
      future, most notably Managed C++'s properties and indexed
      properties.
      
      Most of the effort here is in dealing with the various
      clients of the AST.  I've gone ahead and simplified the
      ObjC rewriter's use of properties;  other clients, like
      IR-gen and the static analyzer, have all the old
      complexity *and* all the new complexity, at least
      temporarily.  Many thanks to Ted for writing and advising
      on the necessary changes to the static analyzer.
      
      I've xfailed a small diagnostics regression in the static
      analyzer at Ted's request.
      
      llvm-svn: 143867
      fe96e0b6
  4. Nov 05, 2011
  5. Nov 04, 2011
  6. Nov 02, 2011
  7. Nov 01, 2011
  8. Oct 29, 2011
  9. Oct 28, 2011
  10. Oct 27, 2011
  11. Oct 26, 2011
  12. Oct 25, 2011
  13. Oct 24, 2011
  14. Oct 23, 2011
Loading