https://gcc.gnu.org/bugzilla/show_bug.cgi?id=126714
Bug ID: 126714
Summary: [17 Regression] Ranger changes break vax port
Product: gcc
Version: 17.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: tree-optimization
Assignee: unassigned at gcc dot gnu.org
Reporter: law at gcc dot gnu.org
Target Milestone: ---
This change:
commit ab5addf0674f07d64b18695a54f1b43bb99e61a4
Author: Aldy Hernandez <[email protected]>
Date: Thu Aug 6 14:33:18 2026 +0000
[frange] Convert frange_add_zeros to multi-range
frange_add_zeros ensures both -0.0 and +0.0 are present whenever the
range holds a zero, but it detected the zero via the hull endpoints.
For a multi-pair range whose zero sits on an inner boundary, it failed
to add +0.0. For example, for [-1.0,-0.0][1.0,1.0] which has a hull
of [-1.0,1.0], it failed to add +0.0.
Tested on ppc64le Linux: regstrap and LAPACK.
gcc/ChangeLog:
* range-op-float.cc (frange_add_zeros): Detect a contained zero
with
the contains_zero_p method instead of inspecting the hull
endpoints.
(range_op_float_tests): Test that op1_range for == admits +0.0 for
a
multi-pair operand holding an inner -0.0.
gcc/range-op-float.cc | 15 +++++++++++++--
Causes the vax-unknown-linux port to fail selftests:
home/jlaw/test/gcc/gcc/range-op-float.cc:3278: range_op_float_tests: FAIL:
ASSERT_FALSE ((r0.contains_p (dconst0)))
In function 'test_fn':
cc1: internal compiler error: in fail, at selftest.cc:48
0x1eed60c internal_error(char const*, ...)
/home/jlaw/test/gcc/gcc/diagnostic-global-context.cc:787
0x88d87b fancy_abort(char const*, int, char const*)
/home/jlaw/test/gcc/gcc/diagnostics/context.cc:1813
0x1ee4aa7 selftest::fail(selftest::location const&, char const*)
/home/jlaw/test/gcc/gcc/selftest.cc:48
0xf504fe selftest::range_op_float_tests()
/home/jlaw/test/gcc/gcc/range-op-float.cc:3278
0x1be3585 test_ranges
/home/jlaw/test/gcc/gcc/function-tests.cc:586
0x1be3585 selftest::function_tests_cc_tests()
/home/jlaw/test/gcc/gcc/function-tests.cc:682
0x1d3f478 selftest::run_tests()
/home/jlaw/test/gcc/gcc/selftest-run-tests.cc:116
0xff03aa toplev::run_self_tests()
/home/jlaw/test/gcc/gcc/toplev.cc:2287