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

            Bug ID: 120935
           Summary: ICE building libstdc++ for mmix
           Product: gcc
           Version: 16.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: target
          Assignee: unassigned at gcc dot gnu.org
          Reporter: pietro at sociotechnical dot xyz
  Target Milestone: ---

Building a cross for mmix-knuth-mmixware from master for c and c++ fails when
building libstc++ with:

uring RTL pass: expand
In file included from
/home/user/repos/gcc/libstdc++-v3/src/c++17/floating_to_chars.cc:25:
In function ‘constexpr std::to_chars_result std::__detail::__to_chars_16(char*,
char*, _Tp) [with _Tp = __int128 unsigned]’,
    inlined from ‘constexpr std::to_chars_result std::__to_chars_i(char*,
char*, _Tp, int) [with _Tp = __int128 unsigned]’ at
/home/user/repos/gcc-tools/build_gcc/mmix/libstdc++-v3/include/charconv:350:32:
/home/user/repos/gcc-tools/build_gcc/mmix/libstdc++-v3/include/charconv:173:22:
internal compiler error: in expand_fn_using_insn, at internal-fn.cc:268
  173 |       const unsigned __len = (__to_chars_len_2(__val) + 3) / 4;
      |                      ^~~~~
0x1fd0cb6 internal_error(char const*, ...)
        /home/user/repos/gcc/gcc/diagnostic-global-context.cc:517
0x93e92d fancy_abort(char const*, int, char const*)
        /home/user/repos/gcc/gcc/diagnostic.cc:1810
0x7a64ce expand_fn_using_insn
        /home/user/repos/gcc/gcc/internal-fn.cc:268
0xe7b106 expand_expr_real_1(tree_node*, rtx_def*, machine_mode,
expand_modifier, rtx_def**, bool)
        /home/user/repos/gcc/gcc/expr.cc:11431
0xe74d6d expand_expr_real(tree_node*, rtx_def*, machine_mode, expand_modifier,
rtx_def**, bool)
        /home/user/repos/gcc/gcc/expr.cc:9523
0xe74d6d expand_expr(tree_node*, rtx_def*, machine_mode, expand_modifier)
        /home/user/repos/gcc/gcc/expr.h:323
0xe74d6d expand_expr_real_2(separate_ops const*, rtx_def*, machine_mode,
expand_modifier)
        /home/user/repos/gcc/gcc/expr.cc:9851
0xe7bac3 expand_expr_real_gassign(gassign*, rtx_def*, machine_mode,
expand_modifier, rtx_def**, bool)
        /home/user/repos/gcc/gcc/expr.cc:11234
0xe7aca5 expand_expr_real_1(tree_node*, rtx_def*, machine_mode,
expand_modifier, rtx_def**, bool)
        /home/user/repos/gcc/gcc/expr.cc:11416
0xe83e4c expand_expr(tree_node*, rtx_def*, machine_mode, expand_modifier)
        /home/user/repos/gcc/gcc/expr.h:323
0xe83e4c expand_operands(tree_node*, tree_node*, rtx_def*, rtx_def**,
rtx_def**, expand_modifier)
        /home/user/repos/gcc/gcc/expr.cc:9102
0xe71bdb expand_expr_real_2(separate_ops const*, rtx_def*, machine_mode,
expand_modifier)
        /home/user/repos/gcc/gcc/expr.cc:11158
0xe7bac3 expand_expr_real_gassign(gassign*, rtx_def*, machine_mode,
expand_modifier, rtx_def**, bool)
        /home/user/repos/gcc/gcc/expr.cc:11234
0xe7aca5 expand_expr_real_1(tree_node*, rtx_def*, machine_mode,
expand_modifier, rtx_def**, bool)
        /home/user/repos/gcc/gcc/expr.cc:11416
0xe721b8 expand_expr_real(tree_node*, rtx_def*, machine_mode, expand_modifier,
rtx_def**, bool)
        /home/user/repos/gcc/gcc/expr.cc:9523
0xe721b8 expand_expr(tree_node*, rtx_def*, machine_mode, expand_modifier)
        /home/user/repos/gcc/gcc/expr.h:323
0xe721b8 expand_expr_real_2(separate_ops const*, rtx_def*, machine_mode,
expand_modifier)
        /home/user/repos/gcc/gcc/expr.cc:10674
0xe7bac3 expand_expr_real_gassign(gassign*, rtx_def*, machine_mode,
expand_modifier, rtx_def**, bool)
        /home/user/repos/gcc/gcc/expr.cc:11234
0xd48b99 expand_gimple_stmt_1
        /home/user/repos/gcc/gcc/cfgexpand.cc:4359
0xd48b99 expand_gimple_stmt
        /home/user/repos/gcc/gcc/cfgexpand.cc:4423
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.
make[5]: *** [Makefile:587: floating_to_chars.lo] Error 1


C-Vise reduces the preprocessed source to:

unsigned __int128 x;
int countl_zero() { return __builtin_clzg(x); }

which fails with:

during RTL pass: expand
ccpeR7oQ.ii: In function ‘int countl_zero()’:
ccpeR7oQ.ii:2:44: internal compiler error: in expand_fn_using_insn, at
internal-fn.cc:268
    2 | int countl_zero() { return __builtin_clzg(x); }
      |                                            ^
0x1fd0cb6 internal_error(char const*, ...)
        /home/user/repos/gcc/gcc/diagnostic-global-context.cc:517
0x93e92d fancy_abort(char const*, int, char const*)
        /home/user/repos/gcc/gcc/diagnostic.cc:1810
0x7a64ce expand_fn_using_insn
        /home/user/repos/gcc/gcc/internal-fn.cc:268
0xd48bdf expand_call_stmt
        /home/user/repos/gcc/gcc/cfgexpand.cc:3109
0xd48bdf expand_gimple_stmt_1
        /home/user/repos/gcc/gcc/cfgexpand.cc:4276
0xd48bdf expand_gimple_stmt
        /home/user/repos/gcc/gcc/cfgexpand.cc:4423
0xd49201 expand_gimple_tailcall
        /home/user/repos/gcc/gcc/cfgexpand.cc:4470
0xd4ad8a expand_gimple_basic_block
        /home/user/repos/gcc/gcc/cfgexpand.cc:6512
0xd4c6df execute
        /home/user/repos/gcc/gcc/cfgexpand.cc:7286
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.

Reply via email to