diff options
author | Tobias Burnus <burnus@net-b.de> | 2011-03-27 10:30:28 +0200 |
---|---|---|
committer | Tobias Burnus <burnus@gcc.gnu.org> | 2011-03-27 10:30:28 +0200 |
commit | 60386f50ceca766476f4e22f1c78c56865d9bc9d (patch) | |
tree | 0005cd512602d2a7bb1e87ea8d3a877ae7220371 /gcc/fortran/simplify.c | |
parent | 46ae608f26f24496e54e7da889eb76cc3136e198 (diff) | |
download | gcc-60386f50ceca766476f4e22f1c78c56865d9bc9d.zip gcc-60386f50ceca766476f4e22f1c78c56865d9bc9d.tar.gz gcc-60386f50ceca766476f4e22f1c78c56865d9bc9d.tar.bz2 |
re PR fortran/18918 (Eventually support Fortran 2008's coarrays [co-arrays])
2011-03-27 Tobias Burnus <burnus@net-b.de>
PR fortran/18918
* gfortran.h (gfc_isym_id): Rename GFC_ISYM_NUMIMAGES to
GFC_ISYM_NUM_IMAGES.
(gfc_fcoarray): Add GFC_FCOARRAY_LIB.
* intrinsic.c (add_functions): Update due to GFC_ISYM_NUM_IMAGES
rename.
* invoke.texi (-fcoarray=): Document "lib" argument.
* iresolve.c (gfc_resolve_this_image): Fix THIS IMAGE().
* libgfortran.h (libgfortran_stat_codes): Add comments.
* options.c (gfc_handle_coarray_option): Add -fcoarray=lib.
* simplify.c (gfc_simplify_num_images, gfc_simplify_this_image):
Handle GFC_FCOARRAY_LIB.
* trans.h (gfc_init_coarray_decl): New prototype.
(gfor_fndecl_caf_init, gfor_fndecl_caf_finalize,
gfor_fndecl_caf_critical, gfor_fndecl_caf_end_critical,
gfor_fndecl_caf_sync_all, gfor_fndecl_caf_sync_images,
gfor_fndecl_caf_error_stop, gfor_fndecl_caf_error_stop_str,
gfort_gvar_caf_num_images, gfort_gvar_caf_this_image):
New global variables.
* trans-decl.c: Declare several CAF functions (cf. above).
(gfc_build_builtin_function_decls): Initialize those.
(gfc_init_coarray_decl): New function.
(create_main_function): Call CAF init/finalize functions.
* trans-intrinsic.c (trans_this_image, trans_num_images): New.
(gfc_conv_intrinsic_function): Call those.
* trans-stmt.c (gfc_trans_stop, gfc_trans_sync,
* gfc_trans_critical):
Add code for GFC_FCOARRAY_LIB.
From-SVN: r171568
Diffstat (limited to 'gcc/fortran/simplify.c')
-rw-r--r-- | gcc/fortran/simplify.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/gcc/fortran/simplify.c b/gcc/fortran/simplify.c index bb8b575..69edad8 100644 --- a/gcc/fortran/simplify.c +++ b/gcc/fortran/simplify.c @@ -4591,6 +4591,9 @@ gfc_simplify_num_images (void) return &gfc_bad_expr; } + if (gfc_option.coarray != GFC_FCOARRAY_SINGLE) + return NULL; + /* FIXME: gfc_current_locus is wrong. */ result = gfc_get_constant_expr (BT_INTEGER, gfc_default_integer_kind, &gfc_current_locus); @@ -6313,6 +6316,9 @@ gfc_simplify_this_image (gfc_expr *coarray, gfc_expr *dim) gfc_array_spec *as; int d; + if (gfc_option.coarray != GFC_FCOARRAY_SINGLE) + return NULL; + if (coarray == NULL) { gfc_expr *result; |