aboutsummaryrefslogtreecommitdiff
path: root/gcc/fortran
diff options
context:
space:
mode:
authorJanus Weil <janus@gcc.gnu.org>2008-11-29 14:36:35 +0100
committerJanus Weil <janus@gcc.gnu.org>2008-11-29 14:36:35 +0100
commitf42564392c1f0b92e375ea47484cbd2b596bd28c (patch)
tree5bc92f6fcdd3ea9d340ebcbae3b5c7aa8e428f94 /gcc/fortran
parentcc95528267653020ce9ceb0ddb24dd501c0264f8 (diff)
downloadgcc-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/fortran')
-rw-r--r--gcc/fortran/ChangeLog9
-rw-r--r--gcc/fortran/decl.c1
-rw-r--r--gcc/fortran/resolve.c3
3 files changed, 12 insertions, 1 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog
index a01ae8f..834e7d0f0 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 (&current_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;