https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88180
Bug ID: 88180 Summary: ICE in vec<tree_node*, va_gc, vl_embed>::quick_push(tree_node* const&) Product: gcc Version: 9.0 Status: UNCONFIRMED Keywords: ice-on-invalid-code Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: asolokha at gmx dot com Target Milestone: --- g++-9.0.0-alpha20181118 snapshot (r266255) ICEs when compiling gcc/testsuite/g++.dg/pr85039-2.C w/ --param ggc-min-heapsize=1024: % g++-9.0.0-alpha20181118 --param ggc-min-heapsize=1024 -c gcc/testsuite/g++.dg/pr85039-2.C gcc/testsuite/g++.dg/pr85039-2.C:5:36: error: types may not be defined within __builtin_offsetof 5 | } * d::b(__builtin_offsetof(struct { // { dg-error "types may not be defined" } | ^ gcc/testsuite/g++.dg/pr85039-2.C:7:12: error: types may not be defined within __builtin_offsetof 7 | struct a { // { dg-error "types may not be defined" } | ^ gcc/testsuite/g++.dg/pr85039-2.C:10:5: internal compiler error: Segmentation fault 10 | }, i)); | ^ 0xefd97f crash_signal /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20181118/work/gcc-9-20181118/gcc/toplev.c:325 0x924bec vec<tree_node*, va_gc, vl_embed>::quick_push(tree_node* const&) /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20181118/work/gcc-9-20181118/gcc/vec.h:978 0x924bec tree_node** vec_safe_push<tree_node*, va_gc>(vec<tree_node*, va_gc, vl_embed>*&, tree_node* const&) /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20181118/work/gcc-9-20181118/gcc/vec.h:770 0x924bec cp_parser_parenthesized_expression_list /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20181118/work/gcc-9-20181118/gcc/cp/parser.c:7840 0x925a0c cp_parser_initializer /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20181118/work/gcc-9-20181118/gcc/cp/parser.c:22209 0x94b1e5 cp_parser_init_declarator /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20181118/work/gcc-9-20181118/gcc/cp/parser.c:20028 0x92db0f cp_parser_simple_declaration /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20181118/work/gcc-9-20181118/gcc/cp/parser.c:13269 0x952099 cp_parser_declaration /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20181118/work/gcc-9-20181118/gcc/cp/parser.c:12966 0x952820 cp_parser_translation_unit /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20181118/work/gcc-9-20181118/gcc/cp/parser.c:4672 0x952820 c_parse_file() /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20181118/work/gcc-9-20181118/gcc/cp/parser.c:40540 0xa5c4ab c_common_parse_file() /var/tmp/portage/sys-devel/gcc-9.0.0_alpha20181118/work/gcc-9-20181118/gcc/c-family/c-opts.c:1151 ==7759== Invalid write of size 8 ==7759== at 0x924BEC: quick_push (vec.h:978) ==7759== by 0x924BEC: vec_safe_push<tree_node*, va_gc> (vec.h:770) ==7759== by 0x924BEC: cp_parser_parenthesized_expression_list(cp_parser*, int, bool, bool, bool*, unsigned int*, bool) (parser.c:7840) ==7759== by 0x925A0C: cp_parser_initializer(cp_parser*, bool*, bool*, bool) (parser.c:22209) ==7759== by 0x94B1E5: cp_parser_init_declarator(cp_parser*, cp_decl_specifier_seq*, vec<deferred_access_check, va_gc, vl_embed>*, bool, bool, int, bool*, tree_node**, unsigned int*, tree_node**) (parser.c:20028) ==7759== by 0x92DB0F: cp_parser_simple_declaration(cp_parser*, bool, tree_node**) (parser.c:13269) ==7759== by 0x952099: cp_parser_declaration(cp_parser*) (parser.c:12966) ==7759== by 0x952820: cp_parser_translation_unit (parser.c:4672) ==7759== by 0x952820: c_parse_file() (parser.c:40540) ==7759== by 0xA5C4AB: c_common_parse_file() (c-opts.c:1151) ==7759== by 0xEFD9FD: compile_file() (toplev.c:455) ==7759== by 0x815608: do_compile (toplev.c:2172) ==7759== by 0x815608: toplev::main(int, char**) (toplev.c:2307) ==7759== by 0x818C5A: main (main.c:39) ==7759== Address 0x532cd7fb0 is not stack'd, malloc'd or (recently) free'd