https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108047
Bug ID: 108047
Summary: ice: unexpected expression of kind implicit_conv_expr
Product: gcc
Version: 13.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: dcb314 at hotmail dot com
Target Milestone: ---
For this C++ source code:
namespace std {
template <class> class initializer_list;
struct Trans_NS___cxx11_basic_string;
struct vector {
vector(initializer_list<Trans_NS___cxx11_basic_string>);
};
struct Trans_NS___cxx11_basic_string {
Trans_NS___cxx11_basic_string(const char *);
};
} // namespace std
constexpr auto kBufVecX = "";
template <typename> struct TestXswap {
std::vector BuffersIn() { return {kBufVecX}; }
};
does this
$ ~/gcc/results.20221208.asan.ubsan/bin/g++ -c -w bug866.cc
bug866.cc: In member function ‘std::vector TestXswap< <template-parameter-1-1>
>::BuffersIn()’:
bug866.cc:13:45: internal compiler error: unexpected expression
‘(std::Trans_NS___cxx11_basic_string)kBufVecX’ of kind implicit_conv_expr
13 | std::vector BuffersIn() { return {kBufVecX}; }
| ^
0x7386ae cxx_eval_constant_expression(constexpr_ctx const*, tree_node*,
value_cat, bool*, bool*, tree_node**)
../../trunk.d1/gcc/cp/constexpr.cc:8013
It was ok the day before:
$ ~/gcc/results.20221207.asan.ubsan/bin/g++ -c -w bug866.cc
$
The git hashes are 3ad0f470c16d5528 and 7410032a772a9e77, a range
of 24 commits.