]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
re PR fortran/38289 ("procedure( ), pointer" rejected)
authorJanus Weil <janus@gcc.gnu.org>
Sat, 29 Nov 2008 13:36:35 +0000 (14:36 +0100)
committerJanus Weil <janus@gcc.gnu.org>
Sat, 29 Nov 2008 13:36:35 +0000 (14:36 +0100)
2008-11-29  Janus Weil  <janus@gcc.gnu.org>
    Mikael Morin <mikael@gcc.gnu.org>

PR fortran/38289
PR fortran/38290
* decl.c (match_procedure_decl): Handle whitespaces.
* resolve.c (resolve_specific_s0): Bugfix in check for intrinsic
interface.

2008-11-29  Janus Weil  <janus@gcc.gnu.org>
    Tobias Burnus <burnus@gcc.gnu.org>

PR fortran/38289
PR fortran/38290
* gfortran.dg/proc_decl_1.f90: Extended test case.

Co-Authored-By: Mikael Morin <mikael@gcc.gnu.org>
Co-Authored-By: Tobias Burnus <burnus@gcc.gnu.org>
From-SVN: r142276

gcc/fortran/ChangeLog
gcc/fortran/decl.c
gcc/fortran/resolve.c
gcc/testsuite/ChangeLog
gcc/testsuite/gfortran.dg/proc_decl_1.f90

index a01ae8fb0fe188a12adb5b496ecf981627e068cd..834e7d0f0d3309ef5f6e26661df6d667df4fcf5e 100644 (file)
@@ -1,3 +1,12 @@
+2008-11-29  Janus Weil  <janus@gcc.gnu.org>
+           Mikael Morin <mikael@gcc.gnu.org>
+
+       PR fortran/38289
+       PR fortran/38290
+       * decl.c (match_procedure_decl): Handle whitespaces.
+       * resolve.c (resolve_specific_s0): Bugfix in check for intrinsic
+       interface.
+
 2008-11-25  H.J. Lu  <hongjiu.lu@intel.com>
 
        * module.c (gfc_dump_module): Report error on unlink only if
index dabbafa68c65bd698d840033f2dd3f42be83140d..14ccb6081a86b3ae61082f3f24bad81e80cf45f0 100644 (file)
@@ -4094,6 +4094,7 @@ match_procedure_decl (void)
   /* Get the type spec. for the procedure interface.  */
   old_loc = gfc_current_locus;
   m = gfc_match_type_spec (&current_ts, 0);
+  gfc_gobble_whitespace ();
   if (m == MATCH_YES || (m == MATCH_NO && gfc_peek_ascii_char () == ')'))
     goto got_ts;
 
index f1c27e62b59a1d63f9557af6970b32e666e92aca..59e9e5493f277b52bb1745683cdebd3f98b88fdf 100644 (file)
@@ -2748,7 +2748,8 @@ resolve_specific_s0 (gfc_code *c, gfc_symbol *sym)
 
   /* See if we have an intrinsic interface.  */
   if (sym->ts.interface != NULL && !sym->ts.interface->attr.abstract
-      && !sym->ts.interface->attr.subroutine)
+      && !sym->ts.interface->attr.subroutine
+      && sym->ts.interface->attr.intrinsic)
     {
       gfc_intrinsic_sym *isym;
 
index a8710407905a0a2f93ecac28814f9826723a7577..e4ea7b2c5448b087c2bb03fea8a0206527f3a4e9 100644 (file)
@@ -1,3 +1,10 @@
+2008-11-29  Janus Weil  <janus@gcc.gnu.org>
+           Tobias Burnus <burnus@gcc.gnu.org>
+
+       PR fortran/38289
+       PR fortran/38290
+       * gfortran.dg/proc_decl_1.f90: Extended test case.
+
 2008-11-29  Joseph Myers  <joseph@codesourcery.com>
 
        * g++.dg/cpp/stringop-1.C: New test.
index 219722f7a2daef14b82636110997be0a24d4a1f6..392ce7653289efd2a50ad12ae702655a99839218 100644 (file)
@@ -51,6 +51,11 @@ program prog
   procedure(f) :: q  ! { dg-error "may not be a statement function" }
   procedure(oo) :: p  ! { dg-error "must be explicit" }
 
+  procedure ( ) :: r 
+  procedure ( up ) :: s  ! { dg-error "must be explicit" }
+
+  call s
+
 contains
 
   subroutine foo(a,c)  ! { dg-error "PROCEDURE attribute conflicts with INTENT attribute" }