[Bug ipa/124128] [16 Regression] ICE in intersect, at value-range.cc:2043 on s390x-linux-gnu

rguenth at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Mon Mar 30 11:12:04 GMT 2026


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=124128

Richard Biener <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|WAITING                     |NEW

--- Comment #6 from Richard Biener <rguenth at gcc dot gnu.org> ---
gcc -Wdate-time -D_FORTIFY_SOURCE=3 -g -O2
-Werror=implicit-function-declaration -mbackchain -flto=auto
-fstack-protector-strong -Wformat -Werror=format-security
-fno-stack-clash-protection -m64  -fPIC  -o openblas_utest_ext
test_extensions/test_saxpby.o cblas_sscal.o -r -nostdlib
-flinker-output=nolto-rel


2043      gcc_checking_assert (undefined_p () || r.undefined_p ()
2044                           || range_compatible_p (type (), r.type ()));
(gdb) p debug (v)
warning: RTTI symbol not found for class 'int_range<3u, true>'
warning: RTTI symbol not found for class 'int_range<3u, true>'
[irange] unsigned int [1, 2]
$2 = void
(gdb) p debug (*this)
warning: RTTI symbol not found for class 'int_range<3u, true>'
[irange] blasint [-INF, -INF][0, +INF]

and in the caller

1821              if (src_type == dst_type)
1822                {
1823                  vr.intersect (op_res);

and both src/dst type are blasint.  That is int vs. unsigned int.

The operation is ABSU_EXPR, so I assume that

      if (operation != NOP_EXPR)   

isn't good enough or that testing src/dst_type seem wrong.  Probably
using src_type == op_res.type () would work better?

I'll attach preprocessed source of the two TUs, possibly with knowing
it's ABSU_EXPR an artificial testcase could be produced.


More information about the Gcc-bugs mailing list