nikic added a comment.

I've found another bug in LLVM, fixed with 
https://github.com/llvm/llvm-project/commit/78f88082de3627ea04501c83a08f52cf1e60b4f7.
 After that change, the test case from 
https://github.com/llvm/llvm-project/issues/59580 appears to be handled 
correctly, it contains this in the final IR:

  br i1 icmp ugt (ptr getelementptr ([0 x i8], ptr @end, i64 0, i64 536870911), 
ptr @end), label %if.then, label %if.else9

As such, I'm not sure if we actually need any change in Clang, as it seems like 
this was ultimately due to LLVM bugs. At least we would need a different test 
case, as the `inbounds.c` test case is already getting compiled correctly 
without this patch.



================
Comment at: llvm/include/llvm/IR/ConstantFold.h:29
   template <typename T> class ArrayRef;
+  inline bool SignedWrap = false;
+
----------------
These changes shouldn't be needed anymore.


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D142872/new/

https://reviews.llvm.org/D142872

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

Reply via email to