re PR fortran/37580 (Accepts "pointer(:) => target" without lower bound)
2008-09-22 Tobias Burnus <burnus@net-b.de> PR fortran/37580 * expr.c (gfc_check_pointer_assign): Add checks for pointer remapping. 2008-09-22 Tobias Burnus <burnus@net-b.de> PR fortran/37580 * gfortran.dg/pointer_assign_5.f90: New test. * gfortran.dg/pointer_assign_6.f90: New test. From-SVN: r140580
This commit is contained in:
parent
d7445152be
commit
54799fcd03
5 changed files with 56 additions and 0 deletions
|
@ -1,3 +1,9 @@
|
|||
2008-09-23 Tobias Burnus <burnus@net-b.de>
|
||||
|
||||
PR fortran/37580
|
||||
* expr.c (gfc_check_pointer_assign): Add checks for pointer
|
||||
remapping.
|
||||
|
||||
2008-09-22 Jerry DeLisle <jvdelisle@gcc.gnu.org
|
||||
|
||||
PR fortran/37498
|
||||
|
|
|
@ -2955,6 +2955,32 @@ gfc_check_pointer_assign (gfc_expr *lvalue, gfc_expr *rvalue)
|
|||
|
||||
if (ref->type == REF_COMPONENT && ref->u.c.component->attr.pointer)
|
||||
pointer = 1;
|
||||
|
||||
if (ref->type == REF_ARRAY && ref->next == NULL)
|
||||
{
|
||||
if (ref->u.ar.type == AR_FULL)
|
||||
break;
|
||||
|
||||
if (ref->u.ar.type != AR_SECTION)
|
||||
{
|
||||
gfc_error ("Expected bounds specification for '%s' at %L",
|
||||
lvalue->symtree->n.sym->name, &lvalue->where);
|
||||
return FAILURE;
|
||||
}
|
||||
|
||||
if (gfc_notify_std (GFC_STD_F2003,"Fortran 2003: Bounds "
|
||||
"specification for '%s' in pointer assignment "
|
||||
"at %L", lvalue->symtree->n.sym->name,
|
||||
&lvalue->where) == FAILURE)
|
||||
return FAILURE;
|
||||
|
||||
gfc_error ("Pointer bounds remapping at %L is not yet implemented "
|
||||
"in gfortran", &lvalue->where);
|
||||
/* TODO: See PR 29785. Add checks that all lbounds are specified and
|
||||
either never or always the upper-bound; strides shall not be
|
||||
present. */
|
||||
return FAILURE;
|
||||
}
|
||||
}
|
||||
|
||||
if (check_intent_in && lvalue->symtree->n.sym->attr.intent == INTENT_IN)
|
||||
|
|
|
@ -1,3 +1,9 @@
|
|||
2008-09-23 Tobias Burnus <burnus@net-b.de>
|
||||
|
||||
PR fortran/37580
|
||||
* gfortran.dg/pointer_assign_5.f90: New test.
|
||||
* gfortran.dg/pointer_assign_6.f90: New test.
|
||||
|
||||
2008-09-22 David Daney <ddaney@avtrex.com>
|
||||
|
||||
PR target/37593
|
||||
|
|
9
gcc/testsuite/gfortran.dg/pointer_assign_5.f90
Normal file
9
gcc/testsuite/gfortran.dg/pointer_assign_5.f90
Normal file
|
@ -0,0 +1,9 @@
|
|||
! { dg-do compile }
|
||||
! PR fortran/37580
|
||||
!
|
||||
program test
|
||||
implicit none
|
||||
real, pointer :: ptr1(:), ptr2(:)
|
||||
ptr1(1) => ptr2 ! { dg-error "Expected bounds specification" }
|
||||
ptr1(1:) => ptr2 ! { dg-error "not yet implemented in gfortran" }
|
||||
end program test
|
9
gcc/testsuite/gfortran.dg/pointer_assign_6.f90
Normal file
9
gcc/testsuite/gfortran.dg/pointer_assign_6.f90
Normal file
|
@ -0,0 +1,9 @@
|
|||
! { dg-do compile }
|
||||
! { dg-options "-std=f95" }
|
||||
! PR fortran/37580
|
||||
!
|
||||
program test
|
||||
implicit none
|
||||
real, pointer :: ptr1(:), ptr2(:)
|
||||
ptr1(1:) => ptr2 ! { dg-error "Fortran 2003: Bounds specification" }
|
||||
end program test
|
Loading…
Add table
Reference in a new issue