I have just committed as obvious a minor addition here:

https://gcc.gnu.org/viewcvs?rev=243218&root=gcc&view=rev

It deals with an extended test case that was only reported after the
initial fix.

Cheers,
Janus



2016-11-29 15:16 GMT+01:00 Janus Weil <ja...@gcc.gnu.org>:
> Committed as r242960.
>
>
>
> 2016-11-28 14:36 GMT+01:00 Janus Weil <ja...@gcc.gnu.org>:
>> Hi all,
>>
>> the attached patch was posted on bugzilla by Tobias three years ago,
>> but left unattended since then. It is simple, works well (fixing a
>> bogus warning) and regtests cleanly on x86_64-linux-gnu.
>>
>> If no one objects, I will commit this to trunk by tomorrow.
>>
>> Cheers,
>> Janus
>>
>>
>>
>> 2016-11-28  Tobias Burnus  <bur...@net-b.de>
>>
>>     PR fortran/58175
>>     * resolve.c (gfc_resolve_finalizers): Properly detect scalar finalizers.
>>
>> 2016-11-28  Janus Weil  <ja...@gcc.gnu.org>
>>
>>     PR fortran/58175
>>     * gfortran.dg/finalize_30.f90: New test case.
Index: gcc/fortran/resolve.c
===================================================================
--- gcc/fortran/resolve.c       (revision 243217)
+++ gcc/fortran/resolve.c       (working copy)
@@ -12517,7 +12517,7 @@ error:
   /* Warn if we haven't seen a scalar finalizer procedure (but we know there
      were nodes in the list, must have been for arrays.  It is surely a good
      idea to have a scalar version there if there's something to finalize.  */
-  if (warn_surprising && result && !seen_scalar)
+  if (warn_surprising && derived->f2k_derived->finalizers && !seen_scalar)
     gfc_warning (OPT_Wsurprising,
                 "Only array FINAL procedures declared for derived type %qs"
                 " defined at %L, suggest also scalar one",
Index: gcc/testsuite/gfortran.dg/finalize_30.f90
===================================================================
--- gcc/testsuite/gfortran.dg/finalize_30.f90   (revision 243217)
+++ gcc/testsuite/gfortran.dg/finalize_30.f90   (working copy)
@@ -10,6 +10,8 @@ module ct
    contains
      final :: aD
   end type
+  type, extends(a) :: a1
+  end type
 contains
   subroutine aD(self)
     type(a), intent(inout) :: self

Reply via email to