aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJanus Weil <janus@gcc.gnu.org>2016-12-03 10:32:27 +0100
committerJanus Weil <janus@gcc.gnu.org>2016-12-03 10:32:27 +0100
commit802583a210c22cdbabb63d660633af09f0039a32 (patch)
treed2908080a1df29c84b52501aee8112066d4d379c
parent98ff2d6b12106fa5c7e7a3249089ace171075fe3 (diff)
downloadgcc-802583a210c22cdbabb63d660633af09f0039a32.zip
gcc-802583a210c22cdbabb63d660633af09f0039a32.tar.gz
gcc-802583a210c22cdbabb63d660633af09f0039a32.tar.bz2
re PR fortran/58175 ([OOP] Incorrect warning message on scalar finalizer)
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
-rw-r--r--gcc/fortran/ChangeLog5
-rw-r--r--gcc/fortran/resolve.c2
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/gfortran.dg/finalize_30.f902
4 files changed, 13 insertions, 1 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog
index 68d0559..7a007c3 100644
--- a/gcc/fortran/ChangeLog
+++ b/gcc/fortran/ChangeLog
@@ -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.
diff --git a/gcc/fortran/resolve.c b/gcc/fortran/resolve.c
index 152678f..7bc9f5f 100644
--- a/gcc/fortran/resolve.c
+++ b/gcc/fortran/resolve.c
@@ -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",
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 103906b..39a5c59 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -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
diff --git a/gcc/testsuite/gfortran.dg/finalize_30.f90 b/gcc/testsuite/gfortran.dg/finalize_30.f90
index 281bfaa..b93a3d5 100644
--- a/gcc/testsuite/gfortran.dg/finalize_30.f90
+++ b/gcc/testsuite/gfortran.dg/finalize_30.f90
@@ -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