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

--- Comment #1 from Jonathan Wakely <redi at gcc dot gnu.org> ---
Maybe a similar issue to PR 81050, i.e. Latin1 isn't valid as a wide charset.
In which case, we should give an error instead of ICE if possible.


Reduced to remove library headers and C++20 features:

template<typename, typename> constexpr bool is_same_v = false;
template<typename T> constexpr bool is_same_v<T,T> = true;

template<typename CharT>
auto
units_suffix() noexcept
{
  if constexpr (is_same_v<CharT, wchar_t>)
    return L"ms";
  else
    return "ms";
}

int main()
{
  units_suffix<wchar_t>();
}


during RTL pass: expand
ice.cc: In function ‘auto units_suffix() [with CharT = wchar_t]’:
ice.cc:9:12: internal compiler error: in get_constant_size, at varasm.cc:3418
    9 |     return L"ms";
      |            ^~~~~
0x8a6410 get_constant_size
        /home/jwakely/src/gcc/gcc/gcc/varasm.cc:3418
0x1519a88 assemble_constant_contents
        /home/jwakely/src/gcc/gcc/gcc/varasm.cc:3615
0x151af15 output_constant_def_contents
        /home/jwakely/src/gcc/gcc/gcc/varasm.cc:3666
0x151b264 maybe_output_constant_def_contents
        /home/jwakely/src/gcc/gcc/gcc/varasm.cc:3602
0x151b264 output_constant_def(tree_node*, int)
        /home/jwakely/src/gcc/gcc/gcc/varasm.cc:3568
0xe23b2e expand_expr_constant
        /home/jwakely/src/gcc/gcc/gcc/expr.cc:8592
0xe23b2e expand_expr_addr_expr_1
        /home/jwakely/src/gcc/gcc/gcc/expr.cc:8619
0xe24169 expand_expr_addr_expr
        /home/jwakely/src/gcc/gcc/gcc/expr.cc:8812
0xe19464 expand_expr_real_1(tree_node*, rtx_def*, machine_mode,
expand_modifier, rtx_def**, bool)
        /home/jwakely/src/gcc/gcc/gcc/expr.cc:12096
0xe26825 store_expr(tree_node*, rtx_def*, int, bool, bool)
        /home/jwakely/src/gcc/gcc/gcc/expr.cc:6330
0xe28090 expand_assignment(tree_node*, tree_node*, bool)
        /home/jwakely/src/gcc/gcc/gcc/expr.cc:6051
0xcf589c expand_gimple_stmt_1
        /home/jwakely/src/gcc/gcc/gcc/cfgexpand.cc:3946
0xcf589c expand_gimple_stmt
        /home/jwakely/src/gcc/gcc/gcc/cfgexpand.cc:4044
0xcfc0ce expand_gimple_basic_block
        /home/jwakely/src/gcc/gcc/gcc/cfgexpand.cc:6096
0xcfdbe7 execute
        /home/jwakely/src/gcc/gcc/gcc/cfgexpand.cc:6822
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.




And this does ICE "gcc version 12.0.1 20220316 (experimental) (GCC)" so it
probably is due to checking.

Reply via email to