diff options
Diffstat (limited to 'gcc/fortran/trans-intrinsic.cc')
-rw-r--r-- | gcc/fortran/trans-intrinsic.cc | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/gcc/fortran/trans-intrinsic.cc b/gcc/fortran/trans-intrinsic.cc index 84a378e..8e1a2b0 100644 --- a/gcc/fortran/trans-intrinsic.cc +++ b/gcc/fortran/trans-intrinsic.cc @@ -2407,7 +2407,7 @@ trans_this_image (gfc_se * se, gfc_expr *expr) /* Coarray-argument version: THIS_IMAGE(coarray [, dim]). */ type = gfc_get_int_type (gfc_default_integer_kind); - corank = gfc_get_corank (expr->value.function.actual->expr); + corank = expr->value.function.actual->expr->corank; rank = expr->value.function.actual->expr->rank; /* Obtain the descriptor of the COARRAY. */ @@ -2684,7 +2684,7 @@ trans_image_index (gfc_se * se, gfc_expr *expr) int rank, corank, codim; type = gfc_get_int_type (gfc_default_integer_kind); - corank = gfc_get_corank (expr->value.function.actual->expr); + corank = expr->value.function.actual->expr->corank; rank = expr->value.function.actual->expr->rank; /* Obtain the descriptor of the COARRAY. */ @@ -3162,7 +3162,7 @@ conv_intrinsic_cobound (gfc_se * se, gfc_expr * expr) arg2 = arg->next; gcc_assert (arg->expr->expr_type == EXPR_VARIABLE); - corank = gfc_get_corank (arg->expr); + corank = arg->expr->corank; gfc_init_se (&argse, NULL); argse.want_coarray = 1; @@ -11723,13 +11723,13 @@ gfc_walk_intrinsic_function (gfc_ss * ss, gfc_expr * expr, expr->value.function.isym, GFC_SS_SCALAR); - if (expr->rank == 0) + if (expr->rank == 0 && expr->corank == 0) return ss; if (gfc_inline_intrinsic_function_p (expr)) return walk_inline_intrinsic_function (ss, expr); - if (gfc_is_intrinsic_libcall (expr)) + if (expr->rank != 0 && gfc_is_intrinsic_libcall (expr)) return gfc_walk_intrinsic_libfunc (ss, expr); /* Special cases. */ @@ -12746,7 +12746,7 @@ conv_intrinsic_move_alloc (gfc_code *code) gfc_init_se (&to_se, NULL); gcc_assert (from_expr->ts.type != BT_CLASS || to_expr->ts.type == BT_CLASS); - coarray = gfc_get_corank (from_expr) != 0; + coarray = from_expr->corank != 0; from_is_class = from_expr->ts.type == BT_CLASS; from_is_scalar = from_expr->rank == 0 && !coarray; |