aboutsummaryrefslogtreecommitdiff
path: root/gcc/fortran/array.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/fortran/array.c')
-rw-r--r--gcc/fortran/array.c17
1 files changed, 12 insertions, 5 deletions
diff --git a/gcc/fortran/array.c b/gcc/fortran/array.c
index 3491517..bc20bb9 100644
--- a/gcc/fortran/array.c
+++ b/gcc/fortran/array.c
@@ -557,7 +557,7 @@ gfc_match_array_spec (gfc_array_spec **asp, bool match_dim, bool match_codim)
goto cleanup;
case AS_ASSUMED_RANK:
- gcc_unreachable ();
+ gcc_unreachable ();
}
if (gfc_match_char (')') == MATCH_YES)
@@ -666,7 +666,7 @@ coarray:
goto cleanup;
case AS_ASSUMED_RANK:
- gcc_unreachable ();
+ gcc_unreachable ();
}
if (gfc_match_char (']') == MATCH_YES)
@@ -1414,7 +1414,7 @@ extract_element (gfc_expr *e)
gfc_free_expr (e);
current_expand.extract_count++;
-
+
return SUCCESS;
}
@@ -1815,7 +1815,7 @@ resolve_array_list (gfc_constructor_base base)
{
gfc_symbol *iter_var;
locus iter_var_loc;
-
+
if (gfc_resolve_iterator (iter, false, true) == FAILURE)
t = FAILURE;
@@ -1847,6 +1847,13 @@ resolve_array_list (gfc_constructor_base base)
if (gfc_resolve_expr (c->expr) == FAILURE)
t = FAILURE;
+
+ if (UNLIMITED_POLY (c->expr))
+ {
+ gfc_error ("Array constructor value at %L shall not be unlimited "
+ "polymorphic [F2008: C4106]", &c->expr->where);
+ t = FAILURE;
+ }
}
return t;
@@ -1941,7 +1948,7 @@ got_charlen:
expr->ts.u.cl->length = gfc_get_int_expr (gfc_default_integer_kind,
NULL, found_length);
}
- else
+ else
{
/* We've got a character length specified. It should be an integer,
otherwise an error is signalled elsewhere. */