diff options
author | Paul Thomas <pault@gcc.gnu.org> | 2006-04-03 04:20:57 +0000 |
---|---|---|
committer | Paul Thomas <pault@gcc.gnu.org> | 2006-04-03 04:20:57 +0000 |
commit | e15e9be3a89ff6ca1efba612f9732d568e1ef3fc (patch) | |
tree | 2c807f9c4b8161c106bc907ae90fd1bf5e28296d /gcc/fortran/iresolve.c | |
parent | b6f65e3c5dd79817b4255d4780fa2ca4e1274f95 (diff) | |
download | gcc-e15e9be3a89ff6ca1efba612f9732d568e1ef3fc.zip gcc-e15e9be3a89ff6ca1efba612f9732d568e1ef3fc.tar.gz gcc-e15e9be3a89ff6ca1efba612f9732d568e1ef3fc.tar.bz2 |
re PR testsuite/26981 (g++.old-deja/g++.other/init18.C fails)
2006-04-03 Paul Thomas <pault@gcc.gnu.org>
PR fortran/26981
* trans.h : Prototype for gfc_conv_missing_dummy.
* trans-expr (gfc_conv_missing_dummy): New function
(gfc_conv_function_call): Call it and tidy up some of the code.
* trans-intrinsic (gfc_conv_intrinsic_function_args): The same.
PR fortran/26976
* array.c (gfc_array_dimen_size): If available, return shape[dimen].
* resolve.c (resolve_function): If available, use the argument shape for the
function expression.
* iresolve.c (gfc_resolve_transfer): Set shape[0] = size.
2006-04-03 Paul Thomas <pault@gcc.gnu.org>
PR fortran/26981
* gfortran.dg/missing_optional_dummy_1.f90: New test.
PR fortran/26976
* gfortran.dg/compliant_elemental_intrinsics_1.f90: New test.
* gfortran.dg/initialization_1.f90: Make assignment compliant.
* gfortran.dg/transfer_array_intrinsic_1.f90: Simplify.
* gfortran.dg/transfer_array_intrinsic_2.f90: Make assignments compliant and detect
bigendian-ness.
From-SVN: r112634
Diffstat (limited to 'gcc/fortran/iresolve.c')
-rw-r--r-- | gcc/fortran/iresolve.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/gcc/fortran/iresolve.c b/gcc/fortran/iresolve.c index a517994..d07864e 100644 --- a/gcc/fortran/iresolve.c +++ b/gcc/fortran/iresolve.c @@ -1955,6 +1955,11 @@ gfc_resolve_transfer (gfc_expr * f, gfc_expr * source ATTRIBUTE_UNUSED, { f->rank = 1; f->value.function.name = transfer1; + if (size && gfc_is_constant_expr (size)) + { + f->shape = gfc_get_shape (1); + mpz_init_set (f->shape[0], size->value.integer); + } } } |