From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 1432) id 7A611385BF83; Tue, 14 Apr 2020 11:51:15 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 7A611385BF83 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1586865075; bh=xqs8kepHifWYhFMsg596K9TvFVfWu5HU+3tTSwYe+M8=; h=From:To:Subject:Date:From; b=icV0TNXRFN9OFIhwafoFskgMNL8WYnccDQ8d9gfS9QUDlOMA2lwbEiQHN58anplSt WsIVPT8SdHZ9iMz2JTMjy9+Wjpy6OEevz9wcM85s45yRSNRq3Ftxjm/3MHK9YFV/Su 1cprdSMy+E+HK8KA823Lw9M1wyL6GGVavXUo4JGE= Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit From: =?utf-8?b?VGhvbWFzIEvgpKXgpJhuaWc=?= To: gcc-cvs@gcc.gnu.org Subject: [gcc r10-7712] Fix PR 94270 by not warning about artifical dummy arguments. X-Act-Checkin: gcc X-Git-Author: =?utf-8?q?Thomas_K=C3=B6nig?= X-Git-Refname: refs/heads/master X-Git-Oldrev: a1ff717f59d5198140fa6e1ad814f3d63ccf9925 X-Git-Newrev: 3b0e49a52e1884b501861c128b0a98dec50bdd2e Message-Id: <20200414115115.7A611385BF83@sourceware.org> Date: Tue, 14 Apr 2020 11:51:15 +0000 (GMT) X-BeenThere: gcc-cvs@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-cvs mailing list List-Unsubscribe: , List-Archive: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 14 Apr 2020 11:51:15 -0000 https://gcc.gnu.org/g:3b0e49a52e1884b501861c128b0a98dec50bdd2e commit r10-7712-g3b0e49a52e1884b501861c128b0a98dec50bdd2e Author: Thomas König Date: Tue Apr 14 13:50:51 2020 +0200 Fix PR 94270 by not warning about artifical dummy arguments. 2020-04-14 Thomas Koenig PR fortran/94270 * interface.c (gfc_get_formal_from_actual_arglist): Always set artificial attribute for symbols. * trans-decl.c (generate_local_decl): Do not warn if the symbol is artifical. 2020-04-14 Thomas Koenig PR fortran/94270 * gfortran.dg/warn_unused_dummy_argument_6.f90: New test. Diff: --- gcc/fortran/interface.c | 2 +- gcc/fortran/trans-decl.c | 2 +- gcc/testsuite/gfortran.dg/warn_unused_dummy_argument_6.f90 | 13 +++++++++++++ 3 files changed, 15 insertions(+), 2 deletions(-) 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 = 0; s->ts.is_c_interop = 0; s->attr.flavor = FL_VARIABLE; - s->attr.artificial = 1; if (a->expr->rank > 0) { s->attr.dimension = 1; @@ -5332,6 +5331,7 @@ gfc_get_formal_from_actual_arglist (gfc_symbol *sym, s->maybe_array = maybe_dummy_array_arg (a->expr); } s->attr.dummy = 1; + s->attr.artificial = 1; s->declared_at = a->expr->where; s->attr.intent = INTENT_UNKNOWN; (*f)->sym = 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 == FL_PROCEDURE) { - if (!sym->attr.referenced) + if (!sym->attr.referenced && !sym->attr.artificial) { if (warn_unused_dummy_argument) gfc_warning (OPT_Wunused_dummy_argument, diff --git a/gcc/testsuite/gfortran.dg/warn_unused_dummy_argument_6.f90 b/gcc/testsuite/gfortran.dg/warn_unused_dummy_argument_6.f90 new file mode 100644 index 00000000000..72f6d5c0857 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/warn_unused_dummy_argument_6.f90 @@ -0,0 +1,13 @@ +! { dg-do compile } +! { dg-options "-Wall" } +! PR 94270 - this used to give a bogus warning. +! Test case by Ignacio Fernández Galván. +subroutine foo() +external bar +call meh(bar) +call foo_internal() +contains + subroutine foo_internal() + call meh(bar) + end subroutine foo_internal +end subroutine foo