public inbox for gcc-cvs@sourceware.org
help / color / mirror / Atom feed
* [gcc r10-7712] Fix PR 94270 by not warning about artifical dummy arguments.
@ 2020-04-14 11:51 Thomas Kथघnig
  0 siblings, 0 replies; only message in thread
From: Thomas Kथघnig @ 2020-04-14 11:51 UTC (permalink / raw)
  To: gcc-cvs

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain; charset="us-ascii", Size: 2846 bytes --]

https://gcc.gnu.org/g:3b0e49a52e1884b501861c128b0a98dec50bdd2e

commit r10-7712-g3b0e49a52e1884b501861c128b0a98dec50bdd2e
Author: Thomas König <tkoenig@gcc.gnu.org>
Date:   Tue Apr 14 13:50:51 2020 +0200

    Fix PR 94270 by not warning about artifical dummy arguments.
    
    2020-04-14  Thomas Koenig  <tkoenig@gcc.gnu.org>
    
            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  <tkoenig@gcc.gnu.org>
    
            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


^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2020-04-14 11:51 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-04-14 11:51 [gcc r10-7712] Fix PR 94270 by not warning about artifical dummy arguments Thomas Kथघnig

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).