re PR fortran/58175 ([OOP] Incorrect warning message on scalar finalizer)
authorJanus Weil <janus@gcc.gnu.org>
Sat, 3 Dec 2016 09:32:27 +0000 (10:32 +0100)
committerJanus Weil <janus@gcc.gnu.org>
Sat, 3 Dec 2016 09:32:27 +0000 (10:32 +0100)
2016-12-03  Janus Weil  <janus@gcc.gnu.org>

PR fortran/58175
* resolve.c (gfc_resolve_finalizers): Prevent bogus warning.

2016-12-03  Janus Weil  <janus@gcc.gnu.org>

PR fortran/58175
* gfortran.dg/finalize_30.f90: Extend test case.

From-SVN: r243218

gcc/fortran/ChangeLog
gcc/fortran/resolve.c
gcc/testsuite/ChangeLog
gcc/testsuite/gfortran.dg/finalize_30.f90

index 68d0559013bf3ca0770ca88969d24f43b0d242c7..7a007c3025172db2c35d9cdfb1f79e0a212680f2 100644 (file)
@@ -1,3 +1,8 @@
+2016-12-03  Janus Weil  <janus@gcc.gnu.org>
+
+       PR fortran/58175
+       * resolve.c (gfc_resolve_finalizers): Prevent bogus warning.
+
 2016-12-02  Steven G. Kargl  <kargl@gcc.gnu.org>
 
        * simplify.c (gfc_convert_char_constant): Free result on error.
index 152678fbe0b1c71d905c1b48d5bd929e413ff51e..7bc9f5f5b6f86d6f7b5593e4268a5839733b9c39 100644 (file)
@@ -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 103906be84ea39be54188974b99252c956897d1d..39a5c595a23619a569870c79abdee69fadb4a8d0 100644 (file)
@@ -1,3 +1,8 @@
+2016-12-03  Janus Weil  <janus@gcc.gnu.org>
+
+       PR fortran/58175
+       * gfortran.dg/finalize_30.f90: Extend test case.
+
 2016-12-02  Jakub Jelinek  <jakub@redhat.com>
 
        PR c++/78649
index 281bfaa0161ba9bfb51e96d2287ed76647cc621d..b93a3d5064511a98a9d3f0bdad1d22262bd711e3 100644 (file)
@@ -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