diff options
author | Cary Coutant <ccoutant@google.com> | 2012-03-09 11:50:43 -0800 |
---|---|---|
committer | Cary Coutant <ccoutant@google.com> | 2012-03-09 11:50:43 -0800 |
commit | 4ed2fc3a6bbaaf1f2ea4d1c077dc7fa0867cd005 (patch) | |
tree | 7774dcb772ccc005c2fd8f8831dc45b90a8f6060 /gcc/fortran/trans-array.c | |
parent | 2400d467a903f32c96df9f9fcb0de7be8a655afa (diff) | |
parent | f9c681635d1850543f547fdbb6efd5a010aca015 (diff) | |
download | gcc-4ed2fc3a6bbaaf1f2ea4d1c077dc7fa0867cd005.tar.gz |
Merge branch 'master' into google-debugfission
Diffstat (limited to 'gcc/fortran/trans-array.c')
-rw-r--r-- | gcc/fortran/trans-array.c | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/gcc/fortran/trans-array.c b/gcc/fortran/trans-array.c index bbe5afeebbf..b54c95b4087 100644 --- a/gcc/fortran/trans-array.c +++ b/gcc/fortran/trans-array.c @@ -2448,7 +2448,7 @@ gfc_add_loop_ss_code (gfc_loopinfo * loop, gfc_ss * ss, bool subscript, case GFC_SS_REFERENCE: /* Scalar argument to elemental procedure. */ gfc_init_se (&se, NULL); - if (ss_info->data.scalar.can_be_null_ref) + if (ss_info->can_be_null_ref) { /* If the actual argument can be absent (in other words, it can be a NULL reference), don't try to evaluate it; pass instead @@ -8493,17 +8493,18 @@ gfc_walk_elemental_function_args (gfc_ss * ss, gfc_actual_arglist *arg, newss = gfc_get_scalar_ss (head, arg->expr); newss->info->type = type; - if (dummy_arg != NULL - && dummy_arg->sym->attr.optional - && arg->expr->expr_type == EXPR_VARIABLE - && (gfc_expr_attr (arg->expr).optional - || gfc_expr_attr (arg->expr).allocatable - || gfc_expr_attr (arg->expr).pointer)) - newss->info->data.scalar.can_be_null_ref = true; } else scalar = 0; + if (dummy_arg != NULL + && dummy_arg->sym->attr.optional + && arg->expr->expr_type == EXPR_VARIABLE + && (gfc_expr_attr (arg->expr).optional + || gfc_expr_attr (arg->expr).allocatable + || gfc_expr_attr (arg->expr).pointer)) + newss->info->can_be_null_ref = true; + head = newss; if (!tail) { |