diff options
author | burnus <burnus@138bc75d-0d04-0410-961f-82ee72b054a4> | 2010-04-14 05:43:30 +0000 |
---|---|---|
committer | burnus <burnus@138bc75d-0d04-0410-961f-82ee72b054a4> | 2010-04-14 05:43:30 +0000 |
commit | a250d5604c330534faa5c2c410c33db5d8253768 (patch) | |
tree | 5f8c9d8a0881e1935a608fe4a3ca638dbb713a55 /gcc/fortran/array.c | |
parent | cd2e6e3d2c8b29849ad49a084c879da8c4f86ddc (diff) | |
download | gcc-a250d5604c330534faa5c2c410c33db5d8253768.tar.gz |
2010-04-14 Tobias Burnus <burnus@net-b.de>
PR fortran/18918
* array.c (gfc_find_array_ref): Handle codimensions.
(gfc_match_array_spec,gfc_match_array_ref): Use gfc_fatal_error.
* check.c (is_coarray, dim_corank_check, gfc_check_lcobound,
gfc_check_image_index, gfc_check_this_image, gfc_check_ucobound):
New functions.
* gfortran.h (gfc_isym_id): Add GFC_ISYM_IMAGE_INDEX,
GFC_ISYM_LCOBOUND, GFC_ISYM_THIS_IMAGE,
GFC_ISYM_UCOBOUND.
* intrinsic.h (add_functions): Add this_image, image_index,
lcobound and ucobound intrinsics.
* intrinsic.c (gfc_check_lcobound,gfc_check_ucobound,
gfc_check_image_index, gfc_check_this_image,
gfc_simplify_image_index, gfc_simplify_lcobound,
gfc_simplify_this_image, gfc_simplify_ucobound):
New function prototypes.
* intrinsic.texi (IMAGE_INDEX, LCOBOUND, THIS_IMAGE
IMAGE_INDEX): Document new intrinsic functions.
* match.c (gfc_match_critical, sync_statement): Make
* -fcoarray=none
error fatal.
* simplify.c (simplify_bound_dim): Handle coarrays.
(simplify_bound): Update simplify_bound_dim call.
(gfc_simplify_num_images): Add -fcoarray=none check.
(simplify_cobound, gfc_simplify_lcobound, gfc_simplify_ucobound,
gfc_simplify_ucobound, gfc_simplify_ucobound): New functions.
2010-04-14 Tobias Burnus <burnus@net-b.de>
PR fortran/18918
* gfortran.dg/coarray_9.f90: Update dg-errors.
* gfortran.dg/coarray_10.f90: New test.
* gfortran.dg/coarray_11.f90: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@158292 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/fortran/array.c')
-rw-r--r-- | gcc/fortran/array.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/gcc/fortran/array.c b/gcc/fortran/array.c index c3e366d677b..5487be7aa4f 100644 --- a/gcc/fortran/array.c +++ b/gcc/fortran/array.c @@ -210,7 +210,7 @@ coarray: if (gfc_option.coarray == GFC_FCOARRAY_NONE) { - gfc_error ("Coarrays disabled at %C, use -fcoarray= to enable"); + gfc_fatal_error ("Coarrays disabled at %C, use -fcoarray= to enable"); return MATCH_ERROR; } @@ -531,7 +531,7 @@ coarray: if (gfc_option.coarray == GFC_FCOARRAY_NONE) { - gfc_error ("Coarrays disabled at %C, use -fcoarray= to enable"); + gfc_fatal_error ("Coarrays disabled at %C, use -fcoarray= to enable"); goto cleanup; } @@ -2223,7 +2223,8 @@ gfc_find_array_ref (gfc_expr *e) for (ref = e->ref; ref; ref = ref->next) if (ref->type == REF_ARRAY - && (ref->u.ar.type == AR_FULL || ref->u.ar.type == AR_SECTION)) + && (ref->u.ar.type == AR_FULL || ref->u.ar.type == AR_SECTION + || (ref->u.ar.type == AR_ELEMENT && ref->u.ar.dimen == 0))) break; if (ref == NULL) |