dcoughlin added a comment.

I have some concerns about soundness when the rearrangement may overflow.

Here is an example:

  void clang_analyzer_eval(int);
  
  void foo(signed char A, signed char B) {
    if (A + 0 >= B + 0) {
      clang_analyzer_eval(A - 126 == B + 3); // This yields FALSE with this 
patch
    }
  }

But for A = 126 and B = -3 the `clang_analyzer_eval` is reachable and should 
evaluate to true.


https://reviews.llvm.org/D35109



_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to