From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 48) id 73FC43858C50; Wed, 29 Mar 2023 06:46:12 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 73FC43858C50 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1680072372; bh=FjFM8E9Yb/cbfvv7UgxnDeMLgR4+2hhryOArW2sUyYs=; h=From:To:Subject:Date:In-Reply-To:References:From; b=JouQ9s4kZDV7VWCxfiGEunEZGqbxby8Hfm+duJceZvUUeagAGNZSApSoUUVdlOvaB 5V/4yJa2J0CiHWBooi3+uxtyNR9T3U7SPbzy51IKX1ecY/0OsfTqyf5sQZGDHNtW9Q hcP6hTZx0/Tv92Lesh9qJMmhkHIyHR5uakIcRGAU= From: "rguenther at suse dot de" To: gcc-bugs@gcc.gnu.org Subject: [Bug ipa/106124] [11/12/13 Regression] ICE in dwarf2out_abstract_function, at dwarf2out.cc:23254 Date: Wed, 29 Mar 2023 06:46:12 +0000 X-Bugzilla-Reason: CC X-Bugzilla-Type: changed X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: gcc X-Bugzilla-Component: ipa X-Bugzilla-Version: 13.0 X-Bugzilla-Keywords: ice-on-valid-code, openmp X-Bugzilla-Severity: normal X-Bugzilla-Who: rguenther at suse dot de X-Bugzilla-Status: ASSIGNED X-Bugzilla-Resolution: X-Bugzilla-Priority: P2 X-Bugzilla-Assigned-To: rguenth at gcc dot gnu.org X-Bugzilla-Target-Milestone: 11.4 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=3D106124 --- Comment #5 from rguenther at suse dot de --- On Tue, 28 Mar 2023, jakub at gcc dot gnu.org wrote: > https://gcc.gnu.org/bugzilla/show_bug.cgi?id=3D106124 >=20 > --- Comment #4 from Jakub Jelinek --- > (In reply to Richard Biener from comment #3) > > I suppose that's the OMP reduction function and that's always(?) inline= d? >=20 > The reduction "function" is something artificial which holds some express= ions > for the > OpenMP reductions; we just need to attach those statements to some decl f= or > name lookup purposes. > The problem is what to do with lambdas defined inside of those expression= s, or > e.g. nested functions for the C case: > int q; >=20 > #pragma omp declare reduction (x : int : omp_out +=3D omp_in + ({ int a = =3D 1; void > foo () { a++; } foo (); a; })) >=20 > void bar (int *, int *); >=20 > void > foo () > { > int r =3D 0, s =3D 0; > #pragma omp parallel reduction (x : r, s) > bar (&r, &s); > } >=20 > ICEs too. Lambdas are there certainly valid, we try to pretend the artif= icial > functions don't really exist for the debug info purposes, but apparently = not > sufficiently. Set DECL_IGNORED?=