gcc/testsuite/ChangeLog:
commit7ea35e8f55e499544836c6303d0b233d3efa3add
authorvehre <vehre@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 15 Jun 2015 10:08:04 +0000 (15 10:08 +0000)
committervehre <vehre@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 15 Jun 2015 10:08:04 +0000 (15 10:08 +0000)
tree39ffb46865f07b55c93fbff285b2a7d35f5c0998
parent3357e1c75ab1aa731eef858e5f4277bdf578b4fd
gcc/testsuite/ChangeLog:

2015-06-15  Andre Vehreschild  <vehre@gmx.de>

PR fortran/44672
PR fortran/45440
PR fortran/57307
* gfortran.dg/allocate_with_source_3.f90: Removed check for
unimplemented error.
* gfortran.dg/allocate_with_source_7.f08: New test.
* gfortran.dg/allocate_with_source_8.f08: New test.

gcc/fortran/ChangeLog:

2015-06-15  Andre Vehreschild  <vehre@gmx.de>

PR fortran/44672
PR fortran/45440
PR fortran/57307
* gfortran.h: Extend gfc_code.ext.alloc to carry a
flag indicating that the array specification has to be
taken from expr3.
* resolve.c (resolve_allocate_expr): Add F2008 notify
and flag indicating source driven array spec.
(resolve_allocate_deallocate): Check for source driven
array spec, when array to allocate has no explicit
array spec.
* trans-array.c (gfc_array_init_size): Get lower and
upper bound from a tree array descriptor, except when
the source expression is an array-constructor which is
fixed to be one-based.
(retrieve_last_ref): Extracted from gfc_array_allocate().
(gfc_array_allocate): Enable allocate(array, source=
array_expression) as specified by F2008:C633.
(gfc_conv_expr_descriptor): Add class tree expression
into the saved descriptor for class arrays.
* trans-array.h: Add temporary array descriptor to
gfc_array_allocate ().
* trans-expr.c (gfc_conv_procedure_call): Special handling
for _copy() routine translation, that comes without an
interface. Third and fourth argument are now passed by value.
* trans-stmt.c (gfc_trans_allocate): Get expr3 array
descriptor for temporary arrays to allow allocate(array,
source = array_expression) for array without array
specification.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@224477 138bc75d-0d04-0410-961f-82ee72b054a4
gcc/fortran/ChangeLog
gcc/fortran/gfortran.h
gcc/fortran/resolve.c
gcc/fortran/trans-array.c
gcc/fortran/trans-array.h
gcc/fortran/trans-expr.c
gcc/fortran/trans-stmt.c
gcc/testsuite/ChangeLog
gcc/testsuite/gfortran.dg/allocate_with_source_3.f90
gcc/testsuite/gfortran.dg/allocate_with_source_7.f08 [new file with mode: 0644]
gcc/testsuite/gfortran.dg/allocate_with_source_8.f08 [new file with mode: 0644]