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

Reply via email to