diff options
author | Janus Weil <janus@gcc.gnu.org> | 2008-11-29 14:36:35 +0100 |
---|---|---|
committer | Janus Weil <janus@gcc.gnu.org> | 2008-11-29 14:36:35 +0100 |
commit | f42564392c1f0b92e375ea47484cbd2b596bd28c (patch) | |
tree | 5bc92f6fcdd3ea9d340ebcbae3b5c7aa8e428f94 /gcc | |
parent | cc95528267653020ce9ceb0ddb24dd501c0264f8 (diff) | |
download | gcc-f42564392c1f0b92e375ea47484cbd2b596bd28c.zip gcc-f42564392c1f0b92e375ea47484cbd2b596bd28c.tar.gz gcc-f42564392c1f0b92e375ea47484cbd2b596bd28c.tar.bz2 |
re PR fortran/38289 ("procedure( ), pointer" rejected)
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
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/fortran/ChangeLog | 9 | ||||
-rw-r--r-- | gcc/fortran/decl.c | 1 | ||||
-rw-r--r-- | gcc/fortran/resolve.c | 3 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 7 | ||||
-rw-r--r-- | gcc/testsuite/gfortran.dg/proc_decl_1.f90 | 5 |
5 files changed, 24 insertions, 1 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index a01ae8f..834e7d0 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -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 diff --git a/gcc/fortran/decl.c b/gcc/fortran/decl.c index dabbafa..14ccb60 100644 --- a/gcc/fortran/decl.c +++ b/gcc/fortran/decl.c @@ -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 (¤t_ts, 0); + gfc_gobble_whitespace (); if (m == MATCH_YES || (m == MATCH_NO && gfc_peek_ascii_char () == ')')) goto got_ts; diff --git a/gcc/fortran/resolve.c b/gcc/fortran/resolve.c index f1c27e6..59e9e54 100644 --- a/gcc/fortran/resolve.c +++ b/gcc/fortran/resolve.c @@ -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; diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index a871040..e4ea7b2 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -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. diff --git a/gcc/testsuite/gfortran.dg/proc_decl_1.f90 b/gcc/testsuite/gfortran.dg/proc_decl_1.f90 index 219722f..392ce76 100644 --- a/gcc/testsuite/gfortran.dg/proc_decl_1.f90 +++ b/gcc/testsuite/gfortran.dg/proc_decl_1.f90 @@ -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" } |