On 5/22/2026 8:36 PM, Andrew MacLeod via Gcc wrote:
Not to throw cold water on the party, but that particular warning infrastructure's past performance has been dismal in the presence of better range info.  I'm afraid better range info from prange replacing pointer_query will not achieve the desired result...  In fact I would be very surprised if it isn't worse. (Sorry Sid :-) When ranger was first enabled, the warnings got far worse which I took flak for from the author... for producing more accurate ranges no less.  Kudos for being optimistic tho.. you never know! :-)
IIRC what happened was when the ranges were completely unknown those diagnostic analysis wouldn't trigger.  Once Ranger started providing ranges, the diagnostic code would simply have more cases to analyze, some of which it couldn't produce a tight enough range to avoid bogus diagnostics.

The other problem is those diagnostics had a ton of heuristics to try and cut down false positives; my hope was that over time we'd see enough commonality that a real path forward on either the optimization problems, Ranger bits or the diagnostic analysis itself would present itself.   I'm not sure Martin ever saw things that way and once I departed Red Hat I didn't have an kind of mandate to focus on those problems or to push Martin in this direction.

These warnings feel a lot more problematical than the uninit warnings.  Probably because uninit is a simpler problem.  A false positive is generally  due to a missed optimization resulting in an infeasible path in the CFG.   For the array indexing, oob reads/writes we're talking about we can get confused by aliases, vectorization, etc etc.  There's just a lot more that can go wrong than just an infeasible path in the CFG.

Ultimately it's all just a long way of saying that while I see value in these diagnostics, I think we need to acknowledge that the situation isn't improving and they're causing significant issues.

Jeff

Reply via email to