[gcc/devel/gccgo] re PR fortran/92990 (INVALID code with NULLIFY – partially misleading error message "If bounds rem
Ian Lance Taylor
ian@gcc.gnu.org
Wed Jan 22 23:49:00 GMT 2020
https://gcc.gnu.org/g:b5fd86aba81ec7dbd50e588909f81771841c03bd
commit b5fd86aba81ec7dbd50e588909f81771841c03bd
Author: Harald Anlauf <anlauf@gmx.de>
Date: Sat Dec 21 20:25:43 2019 +0000
re PR fortran/92990 (INVALID code with NULLIFY â partially misleading error message "If bounds remapping is specified at (1), the pointer target shall not be NULL")
2019-12-21 Harald Anlauf <anlauf@gmx.de>
PR fortran/92990
* match.c (gfc_match_nullify): Check for valid pointer object.
Reject bounds remapping.
PR fortran/92990
* gfortran.dg/pr92990.f90: New test.
From-SVN: r279698
Diff:
---
gcc/fortran/ChangeLog | 6 ++++++
gcc/fortran/match.c | 17 +++++++++++++++++
gcc/testsuite/ChangeLog | 5 +++++
gcc/testsuite/gfortran.dg/pr92990.f90 | 12 ++++++++++++
4 files changed, 40 insertions(+)
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog
index dee20f6..63a6de6 100644
--- a/gcc/fortran/ChangeLog
+++ b/gcc/fortran/ChangeLog
@@ -1,3 +1,9 @@
+2019-12-21 Harald Anlauf <anlauf@gmx.de>
+
+ PR fortran/92990
+ * match.c (gfc_match_nullify): Check for valid pointer object.
+ Reject bounds remapping.
+
2019-12-21 ÃÂ Paul Thomas ÃÂ <pault@gcc.gnu.org>
PR fortran/92753
diff --git a/gcc/fortran/match.c b/gcc/fortran/match.c
index d3e3abc..b467d99 100644
--- a/gcc/fortran/match.c
+++ b/gcc/fortran/match.c
@@ -4588,6 +4588,23 @@ gfc_match_nullify (void)
goto cleanup;
}
+ /* Check for valid array pointer object. Bounds remapping is not
+ allowed with NULLIFY. */
+ if (p->ref)
+ {
+ gfc_ref *remap = p->ref;
+ for (; remap; remap = remap->next)
+ if (!remap->next && remap->type == REF_ARRAY
+ && remap->u.ar.type != AR_FULL)
+ break;
+ if (remap)
+ {
+ gfc_error ("NULLIFY does not allow bounds remapping for "
+ "pointer object at %C");
+ goto cleanup;
+ }
+ }
+
/* build ' => NULL() '. */
e = gfc_get_null_expr (&gfc_current_locus);
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 1f1dec5..0068dc0 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2019-12-21 Harald Anlauf <anlauf@gmx.de>
+
+ PR fortran/92990
+ * gfortran.dg/pr92990.f90: New test.
+
2019-12-21 ÃÂ Paul Thomas ÃÂ <pault@gcc.gnu.org>
PR fortran/92753
diff --git a/gcc/testsuite/gfortran.dg/pr92990.f90 b/gcc/testsuite/gfortran.dg/pr92990.f90
new file mode 100644
index 0000000..a996715
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/pr92990.f90
@@ -0,0 +1,12 @@
+! { dg-do compile }
+! PR fortran/92990
+! Verify fix of error message for NULLIFY vs. pointer assignment (PR70853)
+program p
+ integer, pointer :: x(:)
+ type t
+ integer, pointer :: y(:)
+ end type t
+ type(t) :: z
+ nullify (x(1:2)) ! { dg-error "does not allow bounds remapping" }
+ nullify (z%y(:)) ! { dg-error "does not allow bounds remapping" }
+end
More information about the Gcc-cvs
mailing list