GCC Newspaper
JUNE 15, 2026
Date
/
Architectures
Components
Topics
News & Policy
Other
gcc/range-op-float

Range-op-float: Avoid ICE on undefined ranges

Fixes an internal compiler error (ICE) that occurs when processing undefined ranges in floating-point operations.

The compiler was crashing due to an incorrect assumption about the availability of lower/upper bounds for undefined ranges. The operator_not_equal::fold_range function now calls empty_range_varying to handle these cases, preventing the ICE. This issue was introduced in r14-4153 and this commit reverts to the prior behavior.

In Details

The lower_bound and upper_bound methods on frange assert that they are not called on undefined_p ranges. operator_not_equal::fold_range used to call frelop_early_resolve which indirectly called empty_range_varying, but this was changed in r14-4153. This commit readds the call to empty_range_varying to avoid the ICE. Search terms: GCC range-op-float floating point range.

For Context

GCC uses range analysis to determine the possible values of variables, which enables optimizations like dead code elimination and bounds checking. This commit fixes a bug in the range analysis for floating-point numbers, where the compiler would crash when encountering an undefined range. An undefined range arises when the compiler cannot determine the possible values of a variable. The fix ensures that the compiler correctly handles these undefined ranges, preventing internal errors. Search terms: GCC range-op-float floating point range.

Filed Under: bugfixoptimizationfloating-point