https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92009
Bug ID: 92009 Summary: [10 Regression] ICE: Segmentation fault (in is_really_empty_class) Product: gcc Version: 10.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++-10.0.0-alpha20191006 snapshot (r276640) ICEs when compiling the following testcase reduced from test/CodeGenCXX/rtti-layout.cpp from the clang 9.0.0 test suite: namespace std { class type_info {}; } bool a2 () { return ((void **) &typeid (int))[0]; } % g++-10.0.0-alpha20191006 -c i5vvdig1.cpp i5vvdig1.cpp: In function 'bool a2()': i5vvdig1.cpp:8:37: internal compiler error: Segmentation fault 8 | return ((void **) &typeid (int))[0]; | ^ 0xe6abc6 crash_signal /var/tmp/portage/sys-devel/gcc-10.0.0_alpha20191006/work/gcc-10-20191006/gcc/toplev.c:326 0x80a407 tree_check(tree_node*, char const*, int, char const*, tree_code) /var/tmp/portage/sys-devel/gcc-10.0.0_alpha20191006/work/gcc-10-20191006/gcc/tree.h:3266 0x80a407 is_really_empty_class(tree_node*, bool) /var/tmp/portage/sys-devel/gcc-10.0.0_alpha20191006/work/gcc-10-20191006/gcc/cp/class.c:8450 0x8214d3 cxx_eval_constant_expression /var/tmp/portage/sys-devel/gcc-10.0.0_alpha20191006/work/gcc-10-20191006/gcc/cp/constexpr.c:4759 0x82a6be cxx_eval_component_reference /var/tmp/portage/sys-devel/gcc-10.0.0_alpha20191006/work/gcc-10-20191006/gcc/cp/constexpr.c:2846 0x822c5f cxx_eval_constant_expression /var/tmp/portage/sys-devel/gcc-10.0.0_alpha20191006/work/gcc-10-20191006/gcc/cp/constexpr.c:5178 0x82a6be cxx_eval_component_reference /var/tmp/portage/sys-devel/gcc-10.0.0_alpha20191006/work/gcc-10-20191006/gcc/cp/constexpr.c:2846 0x822c5f cxx_eval_constant_expression /var/tmp/portage/sys-devel/gcc-10.0.0_alpha20191006/work/gcc-10-20191006/gcc/cp/constexpr.c:5178 0x829b53 cxx_eval_indirect_ref /var/tmp/portage/sys-devel/gcc-10.0.0_alpha20191006/work/gcc-10-20191006/gcc/cp/constexpr.c:3672 0x821194 cxx_eval_constant_expression /var/tmp/portage/sys-devel/gcc-10.0.0_alpha20191006/work/gcc-10-20191006/gcc/cp/constexpr.c:5003 0x824e57 cxx_eval_outermost_constant_expr /var/tmp/portage/sys-devel/gcc-10.0.0_alpha20191006/work/gcc-10-20191006/gcc/cp/constexpr.c:5713 0x828dde maybe_constant_value(tree_node*, tree_node*, bool) /var/tmp/portage/sys-devel/gcc-10.0.0_alpha20191006/work/gcc-10-20191006/gcc/cp/constexpr.c:5964 0x839efe cp_fully_fold(tree_node*) /var/tmp/portage/sys-devel/gcc-10.0.0_alpha20191006/work/gcc-10-20191006/gcc/cp/cp-gimplify.c:2215 0x9a5951 cp_build_binary_op(op_location_t const&, tree_code, tree_node*, tree_node*, int) /var/tmp/portage/sys-devel/gcc-10.0.0_alpha20191006/work/gcc-10-20191006/gcc/cp/typeck.c:5597 0x9a8e4e build_binary_op(unsigned int, tree_code, tree_node*, tree_node*, bool) /var/tmp/portage/sys-devel/gcc-10.0.0_alpha20191006/work/gcc-10-20191006/gcc/cp/typeck.c:4316 0x9a8e4e cp_truthvalue_conversion(tree_node*) /var/tmp/portage/sys-devel/gcc-10.0.0_alpha20191006/work/gcc-10-20191006/gcc/cp/typeck.c:5926 0x83fd98 cp_convert(tree_node*, tree_node*, int) /var/tmp/portage/sys-devel/gcc-10.0.0_alpha20191006/work/gcc-10-20191006/gcc/cp/cvt.c:636 0x83fd98 cp_convert_and_check(tree_node*, tree_node*, int) /var/tmp/portage/sys-devel/gcc-10.0.0_alpha20191006/work/gcc-10-20191006/gcc/cp/cvt.c:655 0x7f0e08 convert_like_real /var/tmp/portage/sys-devel/gcc-10.0.0_alpha20191006/work/gcc-10-20191006/gcc/cp/call.c:7520 0x7f2335 perform_implicit_conversion_flags(tree_node*, tree_node*, int, int) /var/tmp/portage/sys-devel/gcc-10.0.0_alpha20191006/work/gcc-10-20191006/gcc/cp/call.c:11259