PR fortran/39692
* symbol.c (check_conflict): Reject procedure pointers for -std=f95.
2009-04-11 Janus Weil <janus@gcc.gnu.org>
PR fortran/39692
* gfortran.dg/proc_ptr_14.f90: New.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@145955
138bc75d-0d04-0410-961f-
82ee72b054a4
-2009-04-11 Daniel Franke <frake.daniel@gmail.com>
+2009-04-11 Janus Weil <janus@gcc.gnu.org>
+
+ PR fortran/39692
+ * symbol.c (check_conflict): Reject procedure pointers for -std=f95.
+
+2009-04-11 Daniel Franke <franke.daniel@gmail.com>
* resolve.c (resolve_global_procedure): Enable whole-file checking for
procedures that are declared later in the file.
if ((attr->if_source == IFSRC_DECL && !attr->procedure) || attr->contained)
conf (external, subroutine);
+ if (attr->proc_pointer && gfc_notify_std (GFC_STD_F2003,
+ "Fortran 2003: Procedure pointer at %C") == FAILURE)
+ return FAILURE;
+
conf (allocatable, pointer);
conf_std (allocatable, dummy, GFC_STD_F2003);
conf_std (allocatable, function, GFC_STD_F2003);
+2009-04-11 Janus Weil <janus@gcc.gnu.org>
+
+ PR fortran/39692
+ * gfortran.dg/proc_ptr_14.f90: New.
+
2009-04-11 Richard Guenther <rguenther@suse.de>
PR middle-end/39732
--- /dev/null
+! { dg-do compile }
+! { dg-options "-std=f95" }
+!
+! PR 39692: f95: conflict between EXTERNAL and POINTER
+!
+! Test for Procedure Pointers (without PROCEDURE statements) with the -std=f95 flag.
+!
+! Contributed by Janus Weil <janus@gcc.gnu.org>
+
+pointer :: f
+external :: f ! { dg-error "Fortran 2003: Procedure pointer" }
+
+external :: g
+pointer :: g ! { dg-error "Fortran 2003: Procedure pointer" }
+
+real, pointer, external :: h ! { dg-error "Fortran 2003: Procedure pointer" }
+
+interface
+ subroutine i
+ end subroutine i
+end interface
+pointer :: i ! { dg-error "Fortran 2003: Procedure pointer" }
+
+pointer :: j
+interface
+ real function j()
+ end function j ! { dg-error "Fortran 2003: Procedure pointer" }
+end interface
+
+contains
+
+ function k() ! { dg-error "attribute conflicts with" }
+ intrinsic sin
+ external k
+ pointer k ! { dg-error "Fortran 2003: Procedure pointer" }
+ real k
+ end function k
+
+end
+