aboutsummaryrefslogtreecommitdiff
path: root/gcc/fortran/simplify.c
diff options
context:
space:
mode:
authorDamian Rouson <damian@sourceryinstitute.org>2018-01-26 20:14:09 +0000
committerAlessandro Fanfarillo <afanfa@gcc.gnu.org>2018-01-26 13:14:09 -0700
commitf8862a1b2afad9d107ad505de2bf554705ebdb38 (patch)
tree77fadaa9edcf35dc620e4fc70fd49c750295acd5 /gcc/fortran/simplify.c
parentdeece1aa0135de487e7846025efbc8f6cd79ffe2 (diff)
downloadgcc-f8862a1b2afad9d107ad505de2bf554705ebdb38.zip
gcc-f8862a1b2afad9d107ad505de2bf554705ebdb38.tar.gz
gcc-f8862a1b2afad9d107ad505de2bf554705ebdb38.tar.bz2
Partial Failed Images patch
Co-Authored-By: Alessandro Fanfarillo <fanfarillo.gcc@gmail.com> Co-Authored-By: Soren Rasmussen <s.c.rasmussen@gmail.com> From-SVN: r257105
Diffstat (limited to 'gcc/fortran/simplify.c')
-rw-r--r--gcc/fortran/simplify.c28
1 files changed, 26 insertions, 2 deletions
diff --git a/gcc/fortran/simplify.c b/gcc/fortran/simplify.c
index 1e5e423..2458956 100644
--- a/gcc/fortran/simplify.c
+++ b/gcc/fortran/simplify.c
@@ -2893,6 +2893,30 @@ gfc_simplify_failed_or_stopped_images (gfc_expr *team ATTRIBUTE_UNUSED,
gfc_expr *
+gfc_simplify_get_team (gfc_expr *level ATTRIBUTE_UNUSED)
+{
+ if (flag_coarray == GFC_FCOARRAY_NONE)
+ {
+ gfc_current_locus = *gfc_current_intrinsic_where;
+ gfc_fatal_error ("Coarrays disabled at %C, use %<-fcoarray=%> to enable");
+ return &gfc_bad_expr;
+ }
+
+ if (flag_coarray == GFC_FCOARRAY_SINGLE)
+ {
+ gfc_expr *result;
+ result = gfc_get_array_expr (BT_INTEGER, gfc_default_integer_kind, &gfc_current_locus);
+ result->rank = 0;
+ return result;
+ }
+
+ /* For fcoarray = lib no simplification is possible, because it is not known
+ what images failed or are stopped at compile time. */
+ return NULL;
+}
+
+
+gfc_expr *
gfc_simplify_float (gfc_expr *a)
{
gfc_expr *result;
@@ -3058,7 +3082,7 @@ gfc_simplify_fraction (gfc_expr *x)
#if MPFR_VERSION < MPFR_VERSION_NUM(3,1,0)
- /* MPFR versions before 3.1.0 do not include mpfr_frexp.
+ /* MPFR versions before 3.1.0 do not include mpfr_frexp.
TODO: remove the kludge when MPFR 3.1.0 or newer will be required */
if (mpfr_sgn (x->value.real) == 0)
@@ -7348,7 +7372,7 @@ gfc_simplify_transfer (gfc_expr *source, gfc_expr *mold, gfc_expr *size)
|| !gfc_is_constant_expr (size))
return NULL;
- if (!gfc_calculate_transfer_sizes (source, mold, size, &source_size,
+ if (!gfc_calculate_transfer_sizes (source, mold, size, &source_size,
&result_size, &result_length))
return NULL;