https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84445
Bug ID: 84445 Summary: ICE with __builtin_launder and virtual function Product: gcc Version: 8.0 Status: UNCONFIRMED Keywords: ice-on-valid-code Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: reichelt at gcc dot gnu.org Target Milestone: --- The following (valid?) code snippet triggers an ICE since GCC 7.1.0: ================================================= struct A { virtual void foo(); }; void bar(A* p) { __builtin_launder(p)->foo(); } ================================================= bug.cc: In function 'void bar(A*)': bug.cc:8:29: internal compiler error: tree check: expected record_type or union_type or qual_union_type, have pointer_type in lookup_base, at cp/search.c:195 __builtin_launder(p)->foo(); ^ 0x78a40a tree_check_failed(tree_node const*, char const*, int, char const*, ...) ../../gcc/gcc/tree.c:9335 0x99b71e tree_check3(tree_node*, char const*, int, char const*, tree_code, tree_code, tree_code) ../../gcc/gcc/tree.h:3172 0x99b71e lookup_base(tree_node*, tree_node*, int, base_kind*, int) ../../gcc/gcc/cp/search.c:195 0x847cf4 build_vtbl_ref_1 ../../gcc/gcc/cp/class.c:706 0x847d5b build_vfn_ref(tree_node*, tree_node*) ../../gcc/gcc/cp/class.c:737 0x81b76f build_over_call ../../gcc/gcc/cp/call.c:8227 0x81d803 build_new_method_call_1 ../../gcc/gcc/cp/call.c:9280 0x81d803 build_new_method_call(tree_node*, tree_node*, vec<tree_node*, va_gc, vl_embed>**, tree_node*, int, tree_node**, int) ../../gcc/gcc/cp/call.c:9355 0x930636 cp_parser_postfix_expression ../../gcc/gcc/cp/parser.c:7207 0x930d90 cp_parser_unary_expression ../../gcc/gcc/cp/parser.c:8318 0x91117f cp_parser_cast_expression ../../gcc/gcc/cp/parser.c:9086 0x91198a cp_parser_binary_expression ../../gcc/gcc/cp/parser.c:9187 0x913164 cp_parser_assignment_expression ../../gcc/gcc/cp/parser.c:9476 0x913878 cp_parser_expression ../../gcc/gcc/cp/parser.c:9645 0x915538 cp_parser_expression_statement ../../gcc/gcc/cp/parser.c:11112 0x91b8ad cp_parser_statement ../../gcc/gcc/cp/parser.c:10916 0x91cdc0 cp_parser_statement_seq_opt ../../gcc/gcc/cp/parser.c:11255 0x91ce97 cp_parser_compound_statement ../../gcc/gcc/cp/parser.c:11209 0x933610 cp_parser_function_body ../../gcc/gcc/cp/parser.c:21750 0x933610 cp_parser_ctor_initializer_opt_and_function_body ../../gcc/gcc/cp/parser.c:21787 Please submit a full bug report, [etc.]