[Bug fortran/94270] [8/9/10 Regression] Bogus unused dummy argument warning/error

tkoenig at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Mon Apr 13 18:00:54 GMT 2020


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94270

--- Comment #3 from Thomas Koenig <tkoenig at gcc dot gnu.org> ---
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 = 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,


More information about the Gcc-bugs mailing list