As noted by Dominique in PR 27766, the following test case is valid: program main real, dimension(2,2) :: result real, dimension(6) :: source real, dimension(2) :: pad call random_number (source) call random_number (pad) result = reshape(source, shape(result),pad=pad(1:0)) result = reshape(source, shape(result)) end program main Currently, this gets rejected with -fbounds-check ( a regression introduced by a recent patch of mine).
Subject: Bug 38234 Author: tkoenig Date: Sun Nov 23 19:25:42 2008 New Revision: 142137 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=142137 Log: 2008-11-23 Thomas Koenig <tkoenig@gcc.gnu.org> PR libfortran/38234 * intrinsics/reshape_generic.c (reshape_internal): Source can be larger than shape. * m4/reshape.m4: Likewise. * generated/reshape_c10.c Regenerated. * generated/reshape_c16.c Regenerated. * generated/reshape_c4.c Regenerated. * generated/reshape_c8.c Regenerated. * generated/reshape_i16.c Regenerated. * generated/reshape_i4.c Regenerated. * generated/reshape_i8.c Regenerated. * generated/reshape_r10.c Regenerated. * generated/reshape_r16.c Regenerated. * generated/reshape_r4.c Regenerated. * generated/reshape_r8.c Regenerated. 2008-11-23 Thomas Koenig <tkoenig@gcc.gnu.org> PR libfortran/38234 * gfortran.dg/reshape_4.f90: New test. Added: trunk/gcc/testsuite/gfortran.dg/reshape_4.f90 Modified: trunk/gcc/testsuite/ChangeLog trunk/libgfortran/ChangeLog trunk/libgfortran/generated/reshape_c10.c trunk/libgfortran/generated/reshape_c16.c trunk/libgfortran/generated/reshape_c4.c trunk/libgfortran/generated/reshape_c8.c trunk/libgfortran/generated/reshape_i16.c trunk/libgfortran/generated/reshape_i4.c trunk/libgfortran/generated/reshape_i8.c trunk/libgfortran/generated/reshape_r10.c trunk/libgfortran/generated/reshape_r16.c trunk/libgfortran/generated/reshape_r4.c trunk/libgfortran/generated/reshape_r8.c trunk/libgfortran/intrinsics/reshape_generic.c trunk/libgfortran/m4/reshape.m4
Fixed. Closing.