diff options
author | pault <pault@138bc75d-0d04-0410-961f-82ee72b054a4> | 2006-10-19 04:51:14 +0000 |
---|---|---|
committer | pault <pault@138bc75d-0d04-0410-961f-82ee72b054a4> | 2006-10-19 04:51:14 +0000 |
commit | b9cd8c56e3d647692ed17c6d3ad6a49c47592d50 (patch) | |
tree | 0a238ae277da6e261a574bc4c7f6ff8fd90829f2 /gcc/fortran/trans.c | |
parent | b5a464e0997c2b9f8e2f77a3007101e16f0a5c3d (diff) | |
download | ppe42-gcc-b9cd8c56e3d647692ed17c6d3ad6a49c47592d50.tar.gz ppe42-gcc-b9cd8c56e3d647692ed17c6d3ad6a49c47592d50.zip |
2006-10-19 Paul Thomas <pault@gcc.gnu.org>
PR fortran/29216
PR fortran/29314
* gfortran.h : Add EXEC_INIT_ASSIGN.
* dump-parse-tree.c (gfc_show_code_node): The same.
* trans-openmp.c (gfc_trans_omp_array_reduction): Set new
argument for gfc_trans_assignment to false.
* trans-stmt.c (gfc_trans_forall_1): The same.
* trans-expr.c (gfc_conv_function_call, gfc_trans_assign,
gfc_trans_arrayfunc_assign, gfc_trans_assignment): The
same. In the latter function, use the new flag to stop
the checking of the lhs for deallocation.
(gfc_trans_init_assign): New function.
* trans-stmt.h : Add prototype for gfc_trans_init_assign.
* trans.c (gfc_trans_code): Implement EXEC_INIT_ASSIGN.
* trans.h : Add new boolean argument to the prototype of
gfc_trans_assignment.
* resolve.c (resolve_allocate_exp): Replace EXEC_ASSIGN by
EXEC_INIT_ASSIGN.
(resolve_code): EXEC_INIT_ASSIGN does not need resolution.
(apply_default_init): New function.
(resolve_symbol): Call it for derived types that become
defined but which do not already have an initialization
expression..
* st.c (gfc_free_statement): Include EXEC_INIT_ASSIGN.
2006-10-19 Paul Thomas <pault@gcc.gnu.org>
PR fortran/29216
* gfortran.dg/result_default_init_1.f90: New test.
PR fortran/29314
* gfortran.dg/automatic_default_init_1.f90: New test.
* gfortran.dg/alloc_comp_basics_1.f90: Reduce deallocate count
from 38 to 33.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@117879 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/fortran/trans.c')
-rw-r--r-- | gcc/fortran/trans.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/gcc/fortran/trans.c b/gcc/fortran/trans.c index d4856fde02b..69a702e6034 100644 --- a/gcc/fortran/trans.c +++ b/gcc/fortran/trans.c @@ -477,6 +477,10 @@ gfc_trans_code (gfc_code * code) res = gfc_trans_pointer_assign (code); break; + case EXEC_INIT_ASSIGN: + res = gfc_trans_init_assign (code); + break; + case EXEC_CONTINUE: res = NULL_TREE; break; |