diff options
Diffstat (limited to 'gcc/fortran/expr.c')
-rw-r--r-- | gcc/fortran/expr.c | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/gcc/fortran/expr.c b/gcc/fortran/expr.c index ca6f95d..f68204f 100644 --- a/gcc/fortran/expr.c +++ b/gcc/fortran/expr.c @@ -2509,6 +2509,13 @@ check_transformational (gfc_expr *e) "trim", "unpack", NULL }; + static const char * const trans_func_f2008[] = { + "all", "any", "count", "dot_product", "matmul", "null", "pack", + "product", "repeat", "reshape", "selected_char_kind", "selected_int_kind", + "selected_real_kind", "spread", "sum", "transfer", "transpose", + "trim", "unpack", "findloc", NULL + }; + int i; const char *name; const char *const *functions; @@ -2519,8 +2526,12 @@ check_transformational (gfc_expr *e) name = e->symtree->n.sym->name; - functions = (gfc_option.allow_std & GFC_STD_F2003) - ? trans_func_f2003 : trans_func_f95; + if (gfc_option.allow_std & GFC_STD_F2008) + functions = trans_func_f2008; + else if (gfc_option.allow_std & GFC_STD_F2003) + functions = trans_func_f2003; + else + functions = trans_func_f95; /* NULL() is dealt with below. */ if (strcmp ("null", name) == 0) |