diff options
author | domob <domob@138bc75d-0d04-0410-961f-82ee72b054a4> | 2008-11-01 13:26:19 +0000 |
---|---|---|
committer | domob <domob@138bc75d-0d04-0410-961f-82ee72b054a4> | 2008-11-01 13:26:19 +0000 |
commit | 7a2a9dafa13239976a49aa0eebcbd062ef25bc14 (patch) | |
tree | 2e2f8034dbe6387ba74d7083bb295d1062d519e9 /gcc/fortran/trans-expr.c | |
parent | ecb6b17c8a18efbf7cea9b71f10391ac77707b5f (diff) | |
download | gcc-7a2a9dafa13239976a49aa0eebcbd062ef25bc14.tar.gz |
2008-11-01 Daniel Kraft <d@domob.eu>
PR fortran/35681
* gfortran.h (struct gfc_code): New field `resolved_isym'.
* trans.h (gfc_build_memcpy_call): Made public.
* trans-array.h (gfc_trans_create_temp_array): New argument `initial'.
* intrinsic.c (gfc_intrinsic_sub_interface): Set resolved_isym.
* iresolve.c (create_formal_for_intents): New helper method.
(gfc_resolve_mvbits): Put dummy formal arglist on resolved_sym.
* resolve.c (resolve_call): Initialize resolved_isym to NULL.
* trans-array.c (gfc_trans_allocate_array_storage): New argument
`initial' to allow initializing the allocated storage to some initial
value copied from another array.
(gfc_trans_create_temp_array): Allow initialization of the temporary
with a copy of some other array by using the new extension.
(gfc_trans_array_constructor): Pass NULL_TREE for initial argument.
(gfc_conv_loop_setup): Ditto.
* trans-intrinsic.c (gfc_conv_intrinsic_array_transfer): Ditto.
* trans-expr.c (gfc_conv_function_call): Ditto.
(gfc_build_memcpy_call): Made public.
* trans-stmt.c (gfc_conv_elemental_dependencies): Initialize created
temporary for INTENT(INOUT) arguments to the value of the mirrored
array and clean up the temporary as very last intructions in the created
block.
* trans.c (gfc_trans_code): For EXEC_CALL, see if we have a MVBITS call
and enable elemental dependency checking if we have.
2008-11-01 Daniel Kraft <d@domob.eu>
PR fortran/35681
* gfortran.dg/mvbits_4.f90: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@141516 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/fortran/trans-expr.c')
-rw-r--r-- | gcc/fortran/trans-expr.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/gcc/fortran/trans-expr.c b/gcc/fortran/trans-expr.c index 1c14ac15dc1..a3265ace756 100644 --- a/gcc/fortran/trans-expr.c +++ b/gcc/fortran/trans-expr.c @@ -2863,8 +2863,8 @@ gfc_conv_function_call (gfc_se * se, gfc_symbol * sym, mustn't be deallocated. */ callee_alloc = sym->attr.allocatable || sym->attr.pointer; gfc_trans_create_temp_array (&se->pre, &se->post, se->loop, info, tmp, - false, !sym->attr.pointer, callee_alloc, - &se->ss->expr->where); + NULL_TREE, false, !sym->attr.pointer, + callee_alloc, &se->ss->expr->where); /* Pass the temporary as the first argument. */ tmp = info->descriptor; @@ -4384,7 +4384,7 @@ gfc_trans_zero_assign (gfc_expr * expr) /* Helper for gfc_trans_array_copy and gfc_trans_array_constructor_copy that constructs the call to __builtin_memcpy. */ -static tree +tree gfc_build_memcpy_call (tree dst, tree src, tree len) { tree tmp; |