aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSteven G. Kargl <kargl@gcc.gnu.org>2009-08-23 04:58:31 +0000
committerSteven G. Kargl <kargl@gcc.gnu.org>2009-08-23 04:58:31 +0000
commit3212c187a8b479ab1d58f1d2a7c9ae90aceebf7d (patch)
tree5a456b0d5d074d78f7733aebd6168adfd43ec6e9
parent0aa580f4d2a80a27ee102dc7ae1d830836eb7edf (diff)
downloadgcc-3212c187a8b479ab1d58f1d2a7c9ae90aceebf7d.zip
gcc-3212c187a8b479ab1d58f1d2a7c9ae90aceebf7d.tar.gz
gcc-3212c187a8b479ab1d58f1d2a7c9ae90aceebf7d.tar.bz2
proc_ptr_24.f90: New test.
2009-08-22 Steven G. Kargl <kargl@gcc.gnu.org> * gfortran.dg/proc_ptr_24.f90: New test. 2009-08-22 Steven G. Kargl <kargl@gcc.gnu.org> * fortran/decl.c: Disallow procedure pointers with -std=f95. From-SVN: r151026
-rw-r--r--gcc/fortran/ChangeLog4
-rw-r--r--gcc/fortran/decl.c4
-rw-r--r--gcc/testsuite/ChangeLog4
-rw-r--r--gcc/testsuite/gfortran.dg/proc_ptr_24.f9021
4 files changed, 33 insertions, 0 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog
index 4869fe8..d6d6a91 100644
--- a/gcc/fortran/ChangeLog
+++ b/gcc/fortran/ChangeLog
@@ -1,3 +1,7 @@
+2009-08-22 Steven G. Kargl <kargl@gcc.gnu.org>
+
+ * fortran/decl.c: Disallow procedure pointers with -std=f95.
+
2009-08-22 Steven K. kargl <kargl@gcc.gnu.org>
* fortran/decl.c (match_char_spec): Rename to gfc_match_char_spec,
diff --git a/gcc/fortran/decl.c b/gcc/fortran/decl.c
index 1533af5..40622e2 100644
--- a/gcc/fortran/decl.c
+++ b/gcc/fortran/decl.c
@@ -4449,6 +4449,10 @@ match_ppc_decl (void)
return MATCH_ERROR;
}
+ if (gfc_notify_std (GFC_STD_F2003, "Fortran 2003: Procedure pointer "
+ "component at %C") == FAILURE)
+ return MATCH_ERROR;
+
/* Match PPC names. */
ts = current_ts;
for(num=1;;num++)
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 2c8997d..db8a195 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,7 @@
+2009-08-22 Steven G. Kargl <kargl@gcc.gnu.org>
+
+ * gfortran.dg/proc_ptr_24.f90: New test.
+
2009-08-22 Steven K. kargl <kargl@gcc.gnu.org>
* gfortran.dg/allocate_alloc_opt_4.f90: New test.
diff --git a/gcc/testsuite/gfortran.dg/proc_ptr_24.f90 b/gcc/testsuite/gfortran.dg/proc_ptr_24.f90
new file mode 100644
index 0000000..6bd4709
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/proc_ptr_24.f90
@@ -0,0 +1,21 @@
+! { dg-do compile }
+! { dg-options -std=f95 }
+!
+! Code was posted to comp.lang.fortran by Richard Maine.
+! http://groups.google.com/group/comp.lang.fortran/browse_frm/thread/fff9b3426211c018#
+!
+module m
+ type :: foo
+ real, pointer :: array(:)
+ procedure (), pointer, nopass :: f ! { dg-error "Procedure pointer component" }
+ end type
+contains
+ elemental subroutine fooAssgn (a1, a2)
+ type(foo), intent(out) :: a1
+ type(foo), intent(in) :: a2
+ allocate (a1%array(size(a2%array)))
+
+ a1%array = a2%array
+ a1%f => a2%f ! { dg-error "not a member of the" }
+ end subroutine
+end module m