From: tkoenig Date: Tue, 20 Feb 2007 21:50:20 +0000 (+0000) Subject: 2007-02-20 Thomas Koenig X-Git-Url: http://git.sourceforge.jp/view?p=pf3gnuchains%2Fgcc-fork.git;a=commitdiff_plain;h=0d51184a2158cf3ab280f491f33cc49b6108d2f4 2007-02-20 Thomas Koenig PR fortran/30869 * match.c(gfc_match_iterator): Remove conflict between loop variable and pointer. 2007-02-20 Thomas Koenig PR fortran/30869 * gfortran.dg/do_pointer_1.f90: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@122176 138bc75d-0d04-0410-961f-82ee72b054a4 --- diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index 13598b7a4a2..3597c36d70c 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,3 +1,9 @@ +2007-02-20 Thomas Koenig + + PR fortran/30869 + * match.c(gfc_match_iterator): Remove conflict between + loop variable and pointer. + 2007-02-20 Tobias Burnus PR fortran/30522 diff --git a/gcc/fortran/match.c b/gcc/fortran/match.c index 012f549d224..9d199e26653 100644 --- a/gcc/fortran/match.c +++ b/gcc/fortran/match.c @@ -534,12 +534,6 @@ gfc_match_iterator (gfc_iterator *iter, int init_flag) goto cleanup; } - if (var->symtree->n.sym->attr.pointer) - { - gfc_error ("Loop variable at %C cannot have the POINTER attribute"); - goto cleanup; - } - m = init_flag ? gfc_match_init_expr (&e1) : gfc_match_expr (&e1); if (m == MATCH_NO) goto syntax; diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index c62ef00734e..d3870792369 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2007-02-20 Thomas Koenig + + PR fortran/30869 + * gfortran.dg/do_pointer_1.f90: New test. + 2007-02-20 Kaveh R. Ghazi * gcc.dg/torture/builtin-nonneg-1.c: Add checks for scalb, scalbn diff --git a/gcc/testsuite/gfortran.dg/do_pointer_1.f90 b/gcc/testsuite/gfortran.dg/do_pointer_1.f90 new file mode 100644 index 00000000000..548177acc0a --- /dev/null +++ b/gcc/testsuite/gfortran.dg/do_pointer_1.f90 @@ -0,0 +1,9 @@ +! { dg-do compile } +! PR 30869 - pointer loop variables were wrongly rejected. +program main + integer, pointer :: i + allocate (i) + do i=1,10 + end do + deallocate (i) +end program main