From: Asher Langton Date: Sat, 1 Apr 2006 00:04:46 +0000 (+0000) Subject: re PR fortran/25358 (vector assignment to assumed-size Cray Pointee error) X-Git-Tag: releases/gcc-4.2.0~3464 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=f0d0757e92c7cb506ca4ea509319df440b7f1d57;p=thirdparty%2Fgcc.git re PR fortran/25358 (vector assignment to assumed-size Cray Pointee error) 2006-03-31 Asher Langton PR fortran/25358 *expr.c (gfc_check_assign): Allow cray pointee to be assumes-size. 2006-03-31 Asher Langton PR fortran/25358 gfortran.dg/cray_pointers_6.f90: New test. From-SVN: r112594 --- diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index 7d862357abff..a312507d01fa 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,3 +1,8 @@ +2006-03-31 Asher Langton + + PR fortran/25358 + *expr.c (gfc_check_assign): Allow cray pointee to be assumes-size. + 2006-03-30 Paul Thomas Bud Davis diff --git a/gcc/fortran/expr.c b/gcc/fortran/expr.c index 8362f5336fcd..dfbbed24563d 100644 --- a/gcc/fortran/expr.c +++ b/gcc/fortran/expr.c @@ -1894,7 +1894,7 @@ gfc_check_assign (gfc_expr * lvalue, gfc_expr * rvalue, int conform) if (sym->attr.cray_pointee && lvalue->ref != NULL - && lvalue->ref->u.ar.type != AR_ELEMENT + && lvalue->ref->u.ar.type == AR_FULL && lvalue->ref->u.ar.as->cp_was_assumed) { gfc_error ("Vector assignment to assumed-size Cray Pointee at %L" diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 79fb94cc24fe..80d1d7f6d84d 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2006-03-31 Asher Langton + + PR fortran/25358 + gfortran.dg/cray_pointers_6.f90: New test. + 2006-03-30 Jerry DeLisle PR libgfortran/26890 diff --git a/gcc/testsuite/gfortran.dg/cray_pointers_6.f90 b/gcc/testsuite/gfortran.dg/cray_pointers_6.f90 new file mode 100644 index 000000000000..f89f88092e5f --- /dev/null +++ b/gcc/testsuite/gfortran.dg/cray_pointers_6.f90 @@ -0,0 +1,12 @@ +! { dg-do compile } +! { dg-options "-fcray-pointer" } +! PR fortran/25358 +subroutine adw_set + implicit none + real*8 Adw_xabcd_8(*) + pointer(Adw_xabcd_8_ , Adw_xabcd_8) + common/ Adw / Adw_xabcd_8_ + integer n + Adw_xabcd_8(1:n) = 1 + return +end subroutine adw_set