Re: [PATCH v2] PR tree-optimization/126242: Check range is defined to avoid ICE.
Richard Biener <[email protected]> Mon, 3 Aug 2026 19:53:25 +0200
| Newsgroups | gmane.comp.gcc.patches |
|---|---|
| Message-ID | <[email protected]> |
> Am 03.08.2026 um 19:40 schrieb Roger Sayle <[email protected]>: > > > Hi Richard, > Here's the latest revision of my patch to resolve PR 126242 (and 126325), > incorporating Richard Biener's feedback to simplify the logic, eliminating > itype_ok and always using calling gimple_match_range_of_expr. This > version also resolves PR tree-optimization/126325 introduced/exposed > by the same change, checking that when transforming (float)x < C into > x < (int)C that (int)C is exactly representable, i.e. that (float)(int)C == > C. > > This patch has been tested on x86_64-pc-linux-gnu with make bootstrap > and make -k check, both with and without --target_board=unix{-m32} > with no new failures. Ok for mainline? Ok Thanks, Richard > > 2026-08-03 Roger Sayle <[email protected]> > Richard Biener <[email protected]> > > gcc/ChangeLog > PR tree-optimization/126242 > PR tree-optimization/126325 > * match.pd ((FTYPE) N CMP CST): Always attempt to initialize > value range information. Check undefined_p before using range > bounds. Check that icst_val hasn't overflowed, i.e. that > (FTYPE)ICST == CST, before transforming to integer comparison. > > gcc/testsuite/ChangeLog > PR tree-optimization/126242 > PR tree-optimization/126325 > * gcc.dg/pr126325.c: New test case. > * gfortran.dg/pr126242.f90: New reduced test case. > * gfortran.dg/pr41928-2.f90: Also compile pr41928.f90 with -Ofast. > > Thanks again. > Roger > -- > > <patchvr2.txt>