[Bug tree-optimization/126714] New: [17 Regression] Ranger changes break vax port

"law at gcc dot gnu.org via Gcc-bugs" <[email protected]>
Newsgroups gmane.comp.gcc.bugs
Message-ID <[email protected]/bugzilla/>
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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.