From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 48) id E0E0C3858CD1; Fri, 8 Sep 2023 20:52:55 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org E0E0C3858CD1 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1694206375; bh=+sVZu04BH/8LM6NIjJueWz2fhZus3ovCwXVE+H4Y4vw=; h=From:To:Subject:Date:In-Reply-To:References:From; b=rTpA870hz7n6LhWrZUNOeHFQzf/0Aqe9omL9PGHplETWYIDQpKpWIT1wvYQA/SSsa Ga5Uzc5yY0AMTBmjNN4Ef2pvczggyZVnDs/3EYoevZZLyIbsKPHqifnGF/KmnxbqZ1 +jG+EiFJuFsFbEPQRWtUv5h7QSP0PFdxl+V7/bEg= From: "fxcoudert at gcc dot gnu.org" To: gcc-bugs@gcc.gnu.org Subject: [Bug c++/111075] ICE on g++.dg/torture/tail-padding1.C on darwin Date: Fri, 08 Sep 2023 20:52:54 +0000 X-Bugzilla-Reason: CC X-Bugzilla-Type: changed X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: gcc X-Bugzilla-Component: c++ X-Bugzilla-Version: 14.0 X-Bugzilla-Keywords: ice-on-valid-code X-Bugzilla-Severity: normal X-Bugzilla-Who: fxcoudert at gcc dot gnu.org X-Bugzilla-Status: NEW X-Bugzilla-Resolution: X-Bugzilla-Priority: P3 X-Bugzilla-Assigned-To: unassigned at gcc dot gnu.org X-Bugzilla-Target-Milestone: --- X-Bugzilla-Flags: X-Bugzilla-Changed-Fields: Message-ID: In-Reply-To: References: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Bugzilla-URL: http://gcc.gnu.org/bugzilla/ Auto-Submitted: auto-generated MIME-Version: 1.0 List-Id: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=3D111075 --- Comment #1 from Francois-Xavier Coudert = --- Preprocessed source: % cat a-tail-padding1.ii=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20 # 0 "/Users/fx/gcc-upstream/gcc/testsuite/g++.dg/torture/tail-padding1.C" # 0 "" # 0 "" # 1 "/Users/fx/gcc-upstream/gcc/testsuite/g++.dg/torture/tail-padding1.C" struct X { ~X() {} int n; char d; }; struct Y { Y(); char c[3]; }; struct Z : X, virtual Y { Z(); }; X f() { X nrvo; __builtin_memset(&nrvo, 0, sizeof(X)); return nrvo; } Z::Z() : Y(), X(f()) {} Y::Y() { c[0] =3D 1; } int main() { Z z; if (z.c[0] !=3D 1) __builtin_abort (); } Backtrace of the ICE: * frame #0: 0x0000000101b76378 cc1plus`internal_error(char const*, ...) [inlined] auto_diagnostic_group::auto_diagnostic_group(this=3D= ) at diagnostic.cc:2320:14 frame #1: 0x0000000101b76378 cc1plus`internal_error(gmsgid=3D"in %s, at %s:%d") frame #2: 0x0000000101f92296 cc1plus`fancy_abort(file=3D"/Users/fx/gcc-upstream/gcc/cp/constexpr.cc", line=3D2918, function=3D"cxx_eval_call_expression") at diagnostic.cc:2311:18 frame #3: 0x0000000101c8254e cc1plus`::__second_sect_of_cxx_eval_call_expression() at constexpr.cc:2918:3 frame #4: 0x0000000100054f3b cc1plus`::cxx_eval_constant_expression(ctx=3D0x00007ff7bfefe500, t=3D, lval=3Dvc_prvalue, non_constant_p=3D0x00007ff7bfefe4ee, overflow_p=3D0x00007ff7bfefe4ef, jump_target=3D0x0000000000000000) at constexpr.cc:7257:36 frame #5: 0x0000000100060156 cc1plus`::cxx_eval_outermost_constant_expr(t=3D0x00000001045b9880, allow_non_constant=3Dtrue, strict=3D, manifestly_const_eval=3D= mce_false, constexpr_dtor=3Dfalse, object=3D0x0000000000000000) at constexpr.cc:8500:36 frame #6: 0x000000010006601c cc1plus`maybe_constant_value(t=3D, decl=3D0x0000000000000000, manifestly_const_eval=3Dmce_false) at constexpr.cc:8788:45 frame #7: 0x0000000100091cf1 cc1plus`::cp_fold(x=3D, flags=3D) at cp-gimplify.cc:3052:31 frame #8: 0x0000000100091f46 cc1plus`::cp_fold_r(stmt_p=3D0x00000001045= a3ca0, walk_subtrees=3D0x00007ff7bfefe8dc, data_=3D0x00007ff7bfefe9a0) at cp-gimplify.cc:1077:28 frame #9: 0x0000000101952268 cc1plus`walk_tree_1(tp=3D, func=3D, data=3D0x00007ff7bfefe9a0, pset=3D, lh=3D(cc1plus`cp_walk_subtrees(tree_node**, int*, tree_node* (*)(tree_node*= *, int*, void*), void*, hash_set >*) at tree.cc:5453:1))(tree_node**, int*, void*), void*, hash_set = >*, tree_node* (*)(tree_node**, int*, tree_node* (*)(tree_node**, int*, void*), void*, hash_set >*)) at tree.cc:11398:25 frame #10: 0x0000000101952f0a cc1plus`walk_tree_1(tp=3D, func=3D, data=3D0x00007ff7bfefe9a0, pset=3D, lh=3D(cc1plus`cp_walk_subtrees(tree_node**, int*, tree_node* (*)(tree_node*= *, int*, void*), void*, hash_set >*) at tree.cc:5453:1))(tree_node**, int*, void*), void*, hash_set = >*, tree_node* (*)(tree_node**, int*, tree_node* (*)(tree_node**, int*, void*), void*, hash_set >*)) at tree.cc:11514:4 frame #11: 0x0000000100087c18 cc1plus`cp_fold_function(fndecl=3D0x00000001045be000) at cp-gimplify.cc:119= 9:3 frame #12: 0x00000001000dc0b9 cc1plus`finish_function(inline_p=3D) at decl.cc:18345:22 frame #13: 0x00000001001938bf cc1plus`::maybe_thunk_body(fn=3D0x00000001045b4e00, force=3D) = at optimize.cc:445:26 frame #14: 0x000000010019443a cc1plus`maybe_clone_body(fn=3D0x00000001045b4e00) at optimize.cc:557:38 frame #15: 0x0000000100278978 cc1plus`expand_or_defer_fn_1(fn=3D0x00000001045b4e00) at semantics.cc:4901:= 24 frame #16: 0x0000000100278c5e cc1plus`expand_or_defer_fn(fn=3D0x00000001045b4e00) at semantics.cc:4932:28 frame #17: 0x000000010013c6d8 cc1plus`synthesize_method(fndecl=3D) at method.cc:1842:24 frame #18: 0x00000001000ee7c2 cc1plus`mark_used(decl=3D0x00000001045be0= 00, complain=3D) at decl2.cc:5855:25 frame #19: 0x000000010002016b cc1plus`::build_over_call(cand=3D, flags=3D, complain=3D3) at call.cc:10403:21 frame #20: 0x000000010001d900 cc1plus`build_new_method_call(instance=3D0x00000001044305d0, fns=3D0x0000000104591f20, args=3D, conversion_path=3D, flags=3D1, fn_p=3D0x0000000000000000, complain=3D3) at call.cc:11710:31 frame #21: 0x000000010001eac0 cc1plus`build_special_member_call(instance=3D, name=3D0x0000000104422100, args=3D0x00007ff7bfeff110, binfo=3D= , flags=3D1, complain=3D3) at call.cc:11190:31 frame #22: 0x000000010010fc1d cc1plus`::expand_aggr_init_1(tree, tree, tree, tree, int, tsubst_flags_t) at init.cc:2203:40 frame #23: 0x000000010010fb34 cc1plus`::expand_aggr_init_1(binfo=3D0x00000001045b02a0, true_exp=3D0x0000000000000000, exp=3D0x00000001044305d0, init=3D, flags=3D1, complain=3D3) frame #24: 0x0000000100117964 cc1plus`emit_mem_initializers(mem_inits=3D) at init.cc:1562:23 frame #25: 0x00000001001ebec0 cc1plus`::cp_parser_ctor_initializer_opt_and_function_body(parser=3D0x00000= 001045ac150, in_function_try_block=3Dfalse) at parser.cc:17188:29 frame #26: 0x00000001001ed6e0 cc1plus`::cp_parser_function_definition_after_declarator(parser=3D0x0000000= 1045ac150, inline_p=3Dfalse) at parser.cc:32243:7 frame #27: 0x00000001001eecbe cc1plus`::cp_parser_init_declarator(parser=3D0x00000001045ac150, flags=3D, decl_specifiers=3D0x00007ff7bfeff4b0, checks=3D0x0000000000000000, function_definition_allowed_p=3D, member_p=3Dfalse, declares_class_or_enum=3D0, function_definition_p=3D0x00007ff7bfeff550, maybe_range_for_decl=3D0x0000000000000000, init_loc=3D0x00007ff7bfeff474, auto_result=3D0x00007ff7bfeff5f0) at parser.cc:32160:59 frame #28: 0x00000001001bcf23 cc1plus`::cp_parser_simple_declaration(parser=3D0x00000001045ac150, function_definition_allowed_p=3D, maybe_range_for_decl=3D0x0000000000000000) at parser.cc:15607:40 frame #29: 0x00000001001f63ed cc1plus`::cp_parser_declaration(parser=3D0x00000001045ac150, prefix_attrs=3D0x0000000000000000) at parser.cc:15293:33 frame #30: 0x00000001001f8bf4 cc1plus`c_parse_file() at parser.cc:15314= :27 frame #31: 0x000000010034fede cc1plus`c_common_parse_file() at c-opts.cc:1257:20 frame #32: 0x00000001015b5ce4 cc1plus`::compile_file() at toplev.cc:444= :25 frame #33: 0x0000000101f96942 cc1plus`toplev::main(this=3D0x00007ff7bfe= ff92e, argc=3D, argv=3D) at toplev.cc:2126:24 frame #34: 0x0000000101f9712e cc1plus`main(argc=3D6, argv=3D0x00007ff7b= feffa78) at main.cc:39:23=