From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 48) id 2D4643854813; Wed, 10 Mar 2021 08:26:11 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 2D4643854813 From: "marxin at gcc dot gnu.org" To: gcc-bugs@gcc.gnu.org Subject: [Bug c++/99505] ICE Segmentation fault when decltype lambda in parameter list Date: Wed, 10 Mar 2021 08:26:10 +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: 9.1.0 X-Bugzilla-Keywords: X-Bugzilla-Severity: normal X-Bugzilla-Who: marxin 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: bug_status 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 X-BeenThere: gcc-bugs@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-bugs mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 10 Mar 2021 08:26:11 -0000 https://gcc.gnu.org/bugzilla/show_bug.cgi?id=3D99505 Martin Li=C5=A1ka changed: What |Removed |Added ---------------------------------------------------------------------------- Status|WAITING |NEW --- Comment #3 from Martin Li=C5=A1ka --- (In reply to =E5=BA=B7=E6=A1=93=E7=91=8B from comment #2) > Yep, wandbox (https://wandbox.org/permlink/OUJpCz6dFrlA1vod) compiles fin= e.=20 >=20 > This invalid code maybe can reproduce that locally. >=20 > int main() { > [] (decltype([]{})) {} (); > } >=20 > (wandbox: https://wandbox.org/permlink/re9O9DXwoaYmNInd) > (godbolt: https://godbolt.org/z/e4e7or) Yes, I can reproduce that. It triggers a stack overflow: Program received signal SIGSEGV, Segmentation fault. 0x0000000000c64428 in ggc_internal_alloc (size=3Dsize@entry=3D48, f=3Df@ent= ry=3D0x0, s=3Ds@entry=3D0, n=3Dn@entry=3D1) at /home/marxin/Programming/gcc/gcc/ggc-p= age.c:1278 1278 { Missing separate debuginfos, use: zypper install libgmp10-debuginfo-6.2.1-2.2.x86_64 libisl23-debuginfo-0.23-2.2.x86_64 libmpc3-debuginfo-1.2.1-1.2.x86_64 libmpfr6-debuginfo-4.1.0-2.1.x86_64 libzstd1-debuginfo-1.4.8-2.2.x86_64 (gdb) bt #0 0x0000000000c64428 in ggc_internal_alloc (size=3Dsize@entry=3D48, f=3Df@entry=3D0x0, s=3Ds@entry=3D0, n=3Dn@entry=3D1) at /home/marxin/Programming/gcc/gcc/ggc-page.c:1278 #1 0x0000000000e5f4ee in ggc_internal_cleared_alloc (size=3D48, f=3Df@entr= y=3D0x0, s=3Ds@entry=3D0, n=3Dn@entry=3D1) at /home/marxin/Programming/gcc/gcc/ggc-c= ommon.c:117 #2 0x0000000001445a64 in ggc_internal_cleared_alloc (s=3D) = at /home/marxin/Programming/gcc/gcc/ggc.h:143 #3 ggc_alloc_cleared_tree_node_stat (s=3D) at /home/marxin/Programming/gcc/gcc/ggc.h:315 #4 make_node (code=3Dcode@entry=3DBASELINK) at /home/marxin/Programming/gcc/gcc/tree.c:1079 #5 0x0000000000b69ab6 in build_baselink (binfo=3D0x7ffff7725420, access_binfo=3D0x7ffff7725420, functions=3D0x7ffff7733e00, optype=3D0x0) at /home/marxin/Programming/gcc/gcc/cp/search.c:1087 #6 0x0000000000b6a03e in lookup_member (xbasetype=3D, name=3D0x7ffff75efcc0, protect=3D, protect@entry=3D0, want_type=3Dwant_type@entry=3Dfalse, complain=3Dcomplain@entry=3D3, afi=3Da= fi@entry=3D0x0) at /home/marxin/Programming/gcc/gcc/cp/search.c:1230 #7 0x0000000000a40ef9 in lambda_function (lambda=3Dlambda@entry=3D0x7ffff7= 720f18) at /home/marxin/Programming/gcc/gcc/cp/lambda.c:196 #8 0x0000000000a206f9 in dump_aggr_type (t=3D0x7ffff7720f18, flags=3D1, pp=3D0x285cd00 ) at /home/marxin/Programming/gcc/gcc/cp/error.c:788 #9 0x0000000000a288cc in dump_scope (scope=3D, flags=3D, pp=3D0x285cd00 ) at /home/marxin/Programming/gcc/gcc/cp/error.c:241 #10 0x0000000000a2084d in dump_aggr_type (t=3D, flags=3D0, pp=3D0x285cd00 ) at /home/marxin/Programming/gcc/gcc/cp/error.c:770 #11 0x0000000000a27de9 in dump_parameters (parmtypes=3D0x7ffff77315a0, flag= s=3D0, pp=3D0x285cd00 ) at /home/marxin/Programming/gcc/gcc/tree.h:3354 #12 0x0000000000a20758 in dump_aggr_type (t=3D0x7ffff7720f18, flags=3D1, pp=3D0x285cd00 ) at /home/marxin/Programming/gcc/gcc/cp/error.c:789 #13 0x0000000000a288cc in dump_scope (scope=3D, flags=3D, pp=3D0x285cd00 ) at /home/marxin/Programming/gcc/gcc/cp/error.c:241 #14 0x0000000000a2084d in dump_aggr_type (t=3D, flags=3D0, pp=3D0x285cd00 ) at /home/marxin/Programming/gcc/gcc/cp/error.c:770 #15 0x0000000000a27de9 in dump_parameters (parmtypes=3D0x7ffff77315a0, flag= s=3D0, pp=3D0x285cd00 ) at /home/marxin/Programming/gcc/gcc/tree.h:3354 #16 0x0000000000a20758 in dump_aggr_type (t=3D0x7ffff7720f18, flags=3D1, pp=3D0x285cd00 ) at /home/marxin/Programming/gcc/gcc/cp/error.c:789 #17 0x0000000000a288cc in dump_scope (scope=3D, flags=3D, pp=3D0x285cd00 ) at /home/marxin/Programming/gcc/gcc/cp/error.c:241 #18 0x0000000000a2084d in dump_aggr_type (t=3D, flags=3D0, pp=3D0x285cd00 ) at /home/marxin/Programming/gcc/gcc/cp/error.c:770 #19 0x0000000000a27de9 in dump_parameters (parmtypes=3D0x7ffff77315a0, flag= s=3D0, pp=3D0x285cd00 ) at /home/marxin/Programming/gcc/gcc/tree.h:3354 #20 0x0000000000a20758 in dump_aggr_type (t=3D0x7ffff7720f18, flags=3D1, pp=3D0x285cd00 ) at /home/marxin/Programming/gcc/gcc/cp/error.c:789 #21 0x0000000000a288cc in dump_scope (scope=3D, flags=3D, pp=3D0x285cd00 ) at /home/marxin/Programming/gcc/gcc/cp/error.c:241 #22 0x0000000000a2084d in dump_aggr_type (t=3D, flags=3D0, pp=3D0x285cd00 ) at /home/marxin/Programming/gcc/gcc/cp/error.c:770 ... #2163 0x0000000000a27de9 in dump_parameters (parmtypes=3D0x7ffff77315a0, flags=3D128, pp=3D0x285cd00 ) at /home/marxin/Programming/gcc/gcc/tree.h:3354 #2164 0x0000000000a20758 in dump_aggr_type (t=3D0x7ffff7720f18, flags=3D128, pp=3D0x285cd00 ) at /home/marxin/Programming/gcc/gcc/cp/error.c:789 #2165 0x0000000000a2191c in type_to_string (typ=3D0x7ffff7720f18, verbose=3D, postprocessed=3D, quote=3D0x7ffff= fffcca7, show_color=3D) at /home/marxin/Programming/gcc/gcc/cp/error.= c:3285 #2166 0x0000000000a2ab95 in cp_printer (pp=3D0x2a14610, text=3D0x7fffffffce= 50, spec=3D, precision=3D, wide=3D, set_locus=3D, verbose=3Dfalse, quoted=3D0x7fffffffcca7, buffer_ptr=3D0x2a167b0) at /home/marxin/Programming/gcc/gcc/cp/error.c:4378 #2167 0x0000000001d5e843 in pp_format (pp=3D, text=3Dtext@entry=3D0x7fffffffce50) at /home/marxin/Programming/gcc/gcc/pretty-print.c:1475 #2168 0x0000000001d43831 in diagnostic_report_diagnostic (context=3D0x29b9d= c0 , diagnostic=3D0x7fffffffce50) at /home/marxin/Programming/gcc/gcc/diagnostic.c:1244 #2169 0x0000000001d46d83 in diagnostic_impl (kind=3DDK_ERROR, ap=3D0x7fffff= ffce38, gmsgid=3D0x1eb62e8 "no match for call to %<(%T) (%A)%>", opt=3D-1, metadata= =3D0x0, richloc=3D0x7fffffffcea0) at /home/marxin/Programming/gcc/gcc/diagnostic.c:= 1406 #2170 error (gmsgid=3Dgmsgid@entry=3D0x1eb62e8 "no match for call to %<(%T) (%A)%>") at /home/marxin/Programming/gcc/gcc/diagnostic.c:1702 #2171 0x0000000000963a80 in build_op_call_1 (complain=3D-144817672, args=3D0x7fffffffd057, obj=3D0x7ffff75e41f8) at /home/marxin/Programming/gcc/gcc/tree.h:3468 #2172 build_op_call (obj=3Dobj@entry=3D0x7ffff75e41f8, args=3Dargs@entry=3D0x7fffffffd208, complain=3Dcomplain@entry=3D3) at /home/marxin/Programming/gcc/gcc/cp/call.c:4993 #2173 0x0000000000b790e6 in finish_call_expr (fn=3Dfn@entry=3D0x7ffff75e41f= 8, args=3D0x7fffffffd208, disallow_virtual=3D, koenig_p=3D, complain=3D3) at /home/marxin/Programming/gcc/gcc/cp/semantics.c:2767 #2174 0x0000000000ada38c in cp_parser_postfix_expression (parser=3D0x7ffff7604850, address_p=3D, cast_p=3D, member_access_only_p=3D, decltype_p=3Dfalse, pidk_return=3D0= x0) at /home/marxin/Programming/gcc/gcc/cp/cp-tree.h:68 #2175 0x0000000000ac2293 in cp_parser_binary_expression (parser=3D0x7ffff76= 04850, cast_p=3D, no_toplevel_fold_p=3Dfalse, decltype_p=3D, prec=3DPREC_NOT_OPERATOR, pidk=3D) at /home/marxin/Programming/gcc/gcc/cp/parser.c:9828=