aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJanus Weil <janus@gcc.gnu.org>2015-01-16 13:49:46 +0100
committerJanus Weil <janus@gcc.gnu.org>2015-01-16 13:49:46 +0100
commitdc9a54fa10a05bd30aea60555f8fde6a4aa47733 (patch)
treebc2750a2cfc057af93b890992e7e25971b55af1a
parent8b8e23de943203a28cb667648cb7d7f9e39f64a7 (diff)
downloadgcc-dc9a54fa10a05bd30aea60555f8fde6a4aa47733.zip
gcc-dc9a54fa10a05bd30aea60555f8fde6a4aa47733.tar.gz
gcc-dc9a54fa10a05bd30aea60555f8fde6a4aa47733.tar.bz2
re PR fortran/45290 ([F08] pointer initialization)
2015-01-16 Janus Weil <janus@gcc.gnu.org> PR fortran/45290 * decl.c (match_pointer_init): Error out if resolution of init expr failed. 2015-01-16 Janus Weil <janus@gcc.gnu.org> PR fortran/45290 * gfortran.dg/pointer_init_6.f90: Extended. From-SVN: r219731
-rw-r--r--gcc/fortran/ChangeLog6
-rw-r--r--gcc/fortran/decl.c4
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/gfortran.dg/pointer_init_6.f901
4 files changed, 14 insertions, 2 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog
index 3fd3cfb..c97de7f 100644
--- a/gcc/fortran/ChangeLog
+++ b/gcc/fortran/ChangeLog
@@ -1,3 +1,9 @@
+2015-01-16 Janus Weil <janus@gcc.gnu.org>
+
+ PR fortran/45290
+ * decl.c (match_pointer_init): Error out if resolution of init expr
+ failed.
+
2015-01-15 Tobias Burnus <burnus@net-b.de>
* openmp.c (check_symbol_not_pointer, resolve_oacc_data_clauses,
diff --git a/gcc/fortran/decl.c b/gcc/fortran/decl.c
index dfb760b..2a200fc 100644
--- a/gcc/fortran/decl.c
+++ b/gcc/fortran/decl.c
@@ -1780,8 +1780,8 @@ match_pointer_init (gfc_expr **init, int procptr)
return MATCH_ERROR;
}
- if (!procptr)
- gfc_resolve_expr (*init);
+ if (!procptr && !gfc_resolve_expr (*init))
+ return MATCH_ERROR;
if (!gfc_notify_std (GFC_STD_F2008, "non-NULL pointer "
"initialization at %C"))
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index ffc6794..4f709fc 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2015-01-16 Janus Weil <janus@gcc.gnu.org>
+
+ PR fortran/45290
+ * gfortran.dg/pointer_init_6.f90: Extended.
+
2015-01-16 Robert Suchanek <robert.suchanek@imgtec.com>
* gcc.c-torture/compile/20150108.c: New test.
diff --git a/gcc/testsuite/gfortran.dg/pointer_init_6.f90 b/gcc/testsuite/gfortran.dg/pointer_init_6.f90
index 428a7de..f5e7555 100644
--- a/gcc/testsuite/gfortran.dg/pointer_init_6.f90
+++ b/gcc/testsuite/gfortran.dg/pointer_init_6.f90
@@ -16,6 +16,7 @@ module m1
integer, pointer :: p2 => p1 ! { dg-error "must have the TARGET attribute" }
integer, pointer :: p3 => x%p ! { dg-error "must have the TARGET attribute" }
integer, pointer :: p4 => x%i
+ integer, pointer :: p5 => u ! { dg-error "has no IMPLICIT type" }
end module m1