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

            Bug ID: 111369
           Summary: ICE in handle_cast, gimple-lower-bitint.cc:1486 with
                    -Os
           Product: gcc
           Version: 14.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: middle-end
          Assignee: unassigned at gcc dot gnu.org
          Reporter: fkastl at suse dot cz
                CC: jakub at redhat dot com, mjambor at suse dot cz
  Target Milestone: ---
              Host: x86_64-linux
            Target: x86_64-linux

Compiling gcc/testsuite/gcc.dg/torture/bitint-42.c with -Os produces this
error:

../gcc/gcc/testsuite/gcc.dg/torture/bitint-42.c: In function ‘main’:
../gcc/gcc/testsuite/gcc.dg/torture/bitint-42.c:50:1: internal compiler error:
in handle_cast, at gimple-lower-bitint.cc:1486
   50 | main ()
      | ^~~~
0x8cfc31 handle_cast
        ../../gcc/gcc/gimple-lower-bitint.cc:1486
0x1daafe8 handle_operand
        ../../gcc/gcc/gimple-lower-bitint.cc:791
0x1db31f0 lower_mergeable_stmt
        ../../gcc/gcc/gimple-lower-bitint.cc:2386
0x1db4c5d lower_stmt
        ../../gcc/gcc/gimple-lower-bitint.cc:4687
0x1db68fd gimple_lower_bitint
        ../../gcc/gcc/gimple-lower-bitint.cc:5767
Please submit a full bug report, with preprocessed source (by using
-freport-bug).
Please include the complete backtrace with any bug report.
See <https://gcc.gnu.org/bugs/> for instructions.

An assert fails at the line 1486:

1478   else if (TREE_CODE (lhs_type) == BITINT_TYPE    
1479            && bitint_precision_kind (lhs_type) >= bitint_prec_large
1480            && INTEGRAL_TYPE_P (rhs_type))
1481     {
1482       /* Add support for 3 or more limbs filled in from normal integral
1483          type if this assert fails.  If no target chooses limb mode
smaller
1484          than half of largest supported normal integral type, this will
not
1485          be needed.  */
1486       gcc_assert (TYPE_PRECISION (rhs_type) <= 2 * limb_prec);
1487       tree r1 = NULL_TREE, r2 = NULL_TREE, rext = NULL_TREE;
1488       if (m_first)   
1489         {

Reply via email to