> On Jan 10, 2025, at 03:00, Richard Biener <richard.guent...@gmail.com> wrote: > > On Thu, Jan 9, 2025 at 9:39 PM Qing Zhao <qing.z...@oracle.com> wrote: >> >> >> >>> On Jan 9, 2025, at 14:10, Jeff Law <jeffreya...@gmail.com> wrote: >>> >>> >>> >>> On 1/9/25 10:48 AM, Qing Zhao wrote: >>> >>>>> >>>>> I think Jeff's patch is not reasonable since it boils down to not diagnose >>>>> -Warray-bounds but instead remove those stmts. >>>> If these stmts are dead-code that are generated by compiler optimization >>>> (NOT from source code), >>>> removing them before diagnosis is correct. (To avoid false positive >>>> warnings). >>> But I don't think we generally know if the problematic statements came from >>> user code or were generated by the compiler. >> >> To help the compiler catches real problems in the source code and avoid >> false positive warnings introduced by the compiler transformation, we might >> need to add flags in the IR to distinguish this? > > Well, the issue is the problematic statements _are_ in user code, just > -Warray-bounds is too stupid to > look at SCEV for indices and instead relies on weaker value-ranges.
A little confused here: are you saying that the testing case of PR92539 has __conditional__ UB in the source code level? If so, could you please clarify this a little bit more? (From my understanding of the source code, I didn’t see UB in the source code, do I miss anything obvious?) thanks. Qing > > It's a problem we're never going to fully solve. Some of the > testcases show missed optimizations > which we can work on. Some show we diagnose IL we later are able to > optimize away, some > simply show that users are not always happy with how we decide on > suppressing a diagnostic. > > For the case at hand we should be able to optimize it fully. > > But optimizing based on UB is always going to be to interact with > diagnosing UB, so we have > to be careful. Our "late" diagnostics are most problematic here and > I'd argue moving those > earlier is the first thing we should try. > > Richard. > >> >> Qing >>> >>> Jeff