diff mbox

[Fortran,OOP] PR 58175: Incorrect warning message on scalar finalizer

Message ID CAKwh3qg9mdJxOPhA48e_wrBriPk+4=MtDe2zVGEub=jmbH=J8g@mail.gmail.com
State New
Headers show

Commit Message

Janus Weil Dec. 3, 2016, 9:35 a.m. UTC
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 <janus@gcc.gnu.org>:
> Committed as r242960.
>
>
>
> 2016-11-28 14:36 GMT+01:00 Janus Weil <janus@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  <burnus@net-b.de>
>>
>>     PR fortran/58175
>>     * resolve.c (gfc_resolve_finalizers): Properly detect scalar finalizers.
>>
>> 2016-11-28  Janus Weil  <janus@gcc.gnu.org>
>>
>>     PR fortran/58175
>>     * gfortran.dg/finalize_30.f90: New test case.
diff mbox

Patch

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