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