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 <[email protected]>:
> Committed as r242960.
>
>
>
> 2016-11-28 14:36 GMT+01:00 Janus Weil <[email protected]>:
>> 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 <[email protected]>
>>
>> PR fortran/58175
>> * resolve.c (gfc_resolve_finalizers): Properly detect scalar finalizers.
>>
>> 2016-11-28 Janus Weil <[email protected]>
>>
>> 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