https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95508
Bug ID: 95508 Summary: [10/11 Regression] ICE on unexpected expression implicit_conv_expr since r10-7096 Product: gcc Version: 10.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: jakub at gcc dot gnu.org Target Milestone: --- Since r10-7096-gd417b4f5414d9076300ab41974a14424f722688c the following testcase ICEs: template <typename> struct A; template <typename> struct B { operator int () { return 0; } }; template <> struct A<unsigned> : B<int> {}; struct D { template <typename> int foo () { return e[f]; } int e[6]; A<unsigned> f; }; rh1837006.C: In member function ‘int D::foo()’: rh1837006.C:11:26: internal compiler error: unexpected expression ‘(int)((D*)this)->D::f’ of kind implicit_conv_expr 11 | int foo () { return e[f]; } | ^ 0xaf874b cxx_eval_constant_expression ../../gcc/cp/constexpr.c:6541 0xaf8cef cxx_eval_outermost_constant_expr ../../gcc/cp/constexpr.c:6746 0xafd0db maybe_constant_value(tree_node*, tree_node*, bool) ../../gcc/cp/constexpr.c:7019 0xcc3e00 cp_build_array_ref(unsigned int, tree_node*, tree_node*, int) ../../gcc/cp/typeck.c:3568 ...