https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98469
Bug ID: 98469 Summary: ICE in cxx_eval_constant_expression, at cp/constexpr.c:6350 Product: gcc Version: 11.0 Status: UNCONFIRMED Keywords: ice-on-valid-code Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: asolokha at gmx dot com Target Milestone: --- g++-11.0.0-alpha20201227 snapshot (g:9a48892bea70a1e6a82e24b882f22807b73debe7) ICEs when compiling the following testcase, reduced from test/CodeGenCXX/builtin-bit-cast.cpp from the clang 11.0.0 test suite, w/ -Wall: struct ze { int cd; }; ze uu () { return __builtin_bit_cast (ze, 0); } % g++-11.0.0 -Wall -c czlmwkjs.cpp czlmwkjs.cpp: In function 'ze uu()': czlmwkjs.cpp:8:35: internal compiler error: in cxx_eval_constant_expression, at cp/constexpr.c:6350 8 | return __builtin_bit_cast (ze, 0); | ^ 0x6275ff cxx_eval_constant_expression /var/tmp/portage/sys-devel/gcc-11.0.0_alpha20201227/work/gcc-11-20201227/gcc/cp/constexpr.c:6350 0x906606 cxx_eval_constant_expression /var/tmp/portage/sys-devel/gcc-11.0.0_alpha20201227/work/gcc-11-20201227/gcc/cp/constexpr.c:6609 0x909f46 cxx_eval_outermost_constant_expr /var/tmp/portage/sys-devel/gcc-11.0.0_alpha20201227/work/gcc-11-20201227/gcc/cp/constexpr.c:7126 0x90e7cf maybe_constant_value(tree_node*, tree_node*, bool) /var/tmp/portage/sys-devel/gcc-11.0.0_alpha20201227/work/gcc-11-20201227/gcc/cp/constexpr.c:7397 0x9a125b fold_for_warn(tree_node*) /var/tmp/portage/sys-devel/gcc-11.0.0_alpha20201227/work/gcc-11-20201227/gcc/cp/expr.c:416 0xb6a7f7 check_function_restrict /var/tmp/portage/sys-devel/gcc-11.0.0_alpha20201227/work/gcc-11-20201227/gcc/c-family/c-common.c:5497 0xb6a7f7 check_function_arguments(unsigned int, tree_node const*, tree_node const*, int, tree_node**, vec<unsigned int, va_heap, vl_ptr>*) /var/tmp/portage/sys-devel/gcc-11.0.0_alpha20201227/work/gcc-11-20201227/gcc/c-family/c-common.c:5869 0x8d4b4a build_over_call /var/tmp/portage/sys-devel/gcc-11.0.0_alpha20201227/work/gcc-11-20201227/gcc/cp/call.c:9043 0x8d2af8 build_new_method_call_1 /var/tmp/portage/sys-devel/gcc-11.0.0_alpha20201227/work/gcc-11-20201227/gcc/cp/call.c:10520 0x8d769b build_new_method_call(tree_node*, tree_node*, vec<tree_node*, va_gc, vl_embed>**, tree_node*, int, tree_node**, int) /var/tmp/portage/sys-devel/gcc-11.0.0_alpha20201227/work/gcc-11-20201227/gcc/cp/call.c:10595 0x8d769b build_special_member_call(tree_node*, tree_node*, vec<tree_node*, va_gc, vl_embed>**, tree_node*, int, int) /var/tmp/portage/sys-devel/gcc-11.0.0_alpha20201227/work/gcc-11-20201227/gcc/cp/call.c:9996 0x8ce8bb build_temp /var/tmp/portage/sys-devel/gcc-11.0.0_alpha20201227/work/gcc-11-20201227/gcc/cp/call.c:7189 0x8ce8bb convert_like_internal /var/tmp/portage/sys-devel/gcc-11.0.0_alpha20201227/work/gcc-11-20201227/gcc/cp/call.c:7734 0x8d00c9 convert_like /var/tmp/portage/sys-devel/gcc-11.0.0_alpha20201227/work/gcc-11-20201227/gcc/cp/call.c:7964 0x8d00c9 perform_implicit_conversion_flags(tree_node*, tree_node*, int, int) /var/tmp/portage/sys-devel/gcc-11.0.0_alpha20201227/work/gcc-11-20201227/gcc/cp/call.c:12042 0xb2ae98 check_return_expr(tree_node*, bool*) /var/tmp/portage/sys-devel/gcc-11.0.0_alpha20201227/work/gcc-11-20201227/gcc/cp/typeck.c:10310 0xadaeef finish_return_stmt(tree_node*) /var/tmp/portage/sys-devel/gcc-11.0.0_alpha20201227/work/gcc-11-20201227/gcc/cp/semantics.c:1022 0xa418d6 cp_parser_jump_statement /var/tmp/portage/sys-devel/gcc-11.0.0_alpha20201227/work/gcc-11-20201227/gcc/cp/parser.c:13470 0xa418d6 cp_parser_statement /var/tmp/portage/sys-devel/gcc-11.0.0_alpha20201227/work/gcc-11-20201227/gcc/cp/parser.c:11639 0xa42f3d cp_parser_statement_seq_opt /var/tmp/portage/sys-devel/gcc-11.0.0_alpha20201227/work/gcc-11-20201227/gcc/cp/parser.c:12112