re PR fortran/45290 ([F08] pointer initialization)
authorJanus Weil <janus@gcc.gnu.org>
Fri, 16 Jan 2015 12:49:46 +0000 (13:49 +0100)
committerJanus Weil <janus@gcc.gnu.org>
Fri, 16 Jan 2015 12:49:46 +0000 (13:49 +0100)
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

gcc/fortran/ChangeLog
gcc/fortran/decl.c
gcc/testsuite/ChangeLog
gcc/testsuite/gfortran.dg/pointer_init_6.f90

index 3fd3cfb5ade90499a02d529b0d1b4f342aa2aba2..c97de7fca145d1ab35ca996b3304c5cb96e2396f 100644 (file)
@@ -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,
index dfb760b14414a226d2efad236fa1f151a39fa863..2a200fca7613b1a67a67c4bb7d6874786d4d5d28 100644 (file)
@@ -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"))
index ffc6794ffe4db72eecb3d16ad06adc8bb9a80448..4f709fcdb9385aed15ddfb464663535be8f60d83 100644 (file)
@@ -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.
index 428a7dee8447218e4dd6cc05c7caf775df29de76..f5e7555c4a77dba7ee226df1042faa17f0c4ac76 100644 (file)
@@ -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