From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 48) id 58716385DC0C; Mon, 13 Apr 2020 18:00:54 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 58716385DC0C DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1586800854; bh=oG/IA7jJMRBQRUA/Ie6PkMwBhsVnFcEPZGr4oKCpj/0=; h=From:To:Subject:Date:In-Reply-To:References:From; b=p6H4C8aum+5i7MuEuGB8AkUG4ZTcWZS37UgZCebS7AoUHRsiQFT5IponDJ3mTHg0H GOjyYjSNxIGXMNgvegEmn0NcwgCskMh3smOxgojNRgPhUSLMAhWhcCMMXA1zSuapZz R8/RNtcrX4dQjZJCHuw3MAZWkj+LJ+NQObXjXAcY= From: "tkoenig at gcc dot gnu.org" To: gcc-bugs@gcc.gnu.org Subject: [Bug fortran/94270] [8/9/10 Regression] Bogus unused dummy argument warning/error Date: Mon, 13 Apr 2020 18:00:54 +0000 X-Bugzilla-Reason: CC X-Bugzilla-Type: changed X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: gcc X-Bugzilla-Component: fortran X-Bugzilla-Version: 7.5.0 X-Bugzilla-Keywords: X-Bugzilla-Severity: normal X-Bugzilla-Who: tkoenig at gcc dot gnu.org X-Bugzilla-Status: ASSIGNED X-Bugzilla-Resolution: X-Bugzilla-Priority: P3 X-Bugzilla-Assigned-To: tkoenig at gcc dot gnu.org X-Bugzilla-Target-Milestone: 8.5 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 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: Mon, 13 Apr 2020 18:00:54 -0000 https://gcc.gnu.org/bugzilla/show_bug.cgi?id=3D94270 --- Comment #3 from Thomas Koenig --- Not quite a one-liner, but looks good: diff --git a/gcc/fortran/interface.c b/gcc/fortran/interface.c index 75a50c999b7..8f041f0a0a8 100644 --- a/gcc/fortran/interface.c +++ b/gcc/fortran/interface.c @@ -5317,7 +5317,6 @@ gfc_get_formal_from_actual_arglist (gfc_symbol *sym, s->ts.is_iso_c =3D 0; s->ts.is_c_interop =3D 0; s->attr.flavor =3D FL_VARIABLE; - s->attr.artificial =3D 1; if (a->expr->rank > 0) { s->attr.dimension =3D 1; @@ -5332,6 +5331,7 @@ gfc_get_formal_from_actual_arglist (gfc_symbol *sym, s->maybe_array =3D maybe_dummy_array_arg (a->expr); } s->attr.dummy =3D 1; + s->attr.artificial =3D 1; s->declared_at =3D a->expr->where; s->attr.intent =3D INTENT_UNKNOWN; (*f)->sym =3D s; diff --git a/gcc/fortran/trans-decl.c b/gcc/fortran/trans-decl.c index e91a2795762..487e776f5dd 100644 --- a/gcc/fortran/trans-decl.c +++ b/gcc/fortran/trans-decl.c @@ -6072,7 +6072,7 @@ generate_local_decl (gfc_symbol * sym) /* Unused procedure passed as dummy argument. */ if (sym->attr.flavor =3D=3D FL_PROCEDURE) { - if (!sym->attr.referenced) + if (!sym->attr.referenced && !sym->attr.artificial) { if (warn_unused_dummy_argument) gfc_warning (OPT_Wunused_dummy_argument,=