Bug 38234 - [4.4 Regression] In Reshape, SOURCE can be bigger than result
Summary: [4.4 Regression] In Reshape, SOURCE can be bigger than result
Status: RESOLVED FIXED
Alias: None
Product: gcc
Classification: Unclassified
Component: libfortran (show other bugs)
Version: 4.4.0
: P3 normal
Target Milestone: 4.4.0
Assignee: Thomas Koenig
URL:
Keywords: rejects-valid
Depends on:
Blocks:
 
Reported: 2008-11-23 08:53 UTC by Thomas Koenig
Modified: 2008-11-29 03:07 UTC (History)
1 user (show)

See Also:
Host:
Target:
Build:
Known to work:
Known to fail:
Last reconfirmed: 2008-11-23 09:39:40


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Thomas Koenig 2008-11-23 08:53:20 UTC
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).
Comment 1 Thomas Koenig 2008-11-23 19:27:10 UTC
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

Comment 2 Thomas Koenig 2008-11-23 19:32:27 UTC
Fixed.  Closing.