[Bug fortran/37203] Check ORDER= of RESHAPE
--- Comment #11 from burnus at gcc dot gnu dot org 2009-06-06 21:10 --- Subject: Bug 37203 Author: burnus Date: Sat Jun 6 21:09:57 2009 New Revision: 148238 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=148238 Log: 2009-06-06 Daniel Franke PR fortran/37203 * simplify.c (gfc_simplify_reshape): Fixed reshaping of empty * arrays without padding. 2009-06-06 Daniel Franke PR fortran/37203 * reshape_zerosize_2.f90: New. Added: trunk/gcc/testsuite/gfortran.dg/reshape_zerosize_2.f90 Modified: trunk/gcc/fortran/ChangeLog trunk/gcc/fortran/simplify.c trunk/gcc/testsuite/ChangeLog -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37203
[Bug fortran/37203] Check ORDER= of RESHAPE
--- Comment #10 from burnus at gcc dot gnu dot org 2009-06-04 21:59 --- Merged patch from the fortran-dev branch to the trunk (4.5). Close bug as FIXED. Thanks for the patches, Thomas and Daniel! -- burnus at gcc dot gnu dot org changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution||FIXED http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37203
[Bug fortran/37203] Check ORDER= of RESHAPE
--- Comment #9 from burnus at gcc dot gnu dot org 2009-06-04 21:52 --- Subject: Bug 37203 Author: burnus Date: Thu Jun 4 21:52:32 2009 New Revision: 148190 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=148190 Log: gcc/fortran/ 2009-06-04 Daniel Franke PR fortran/37203 * check.c (gfc_check_reshape): Additional checks for the SHAPE and ORDER arguments. * simplify.c (gfc_simplify_reshape): Converted argument checks to asserts. gcc/testsuite/ 2009-06-04 Daniel Franke PR fortran/37203 * gfortran.dg/reshape_order_5.f90: New. * gfortran.dg/reshape_shape_1.f90: New. Added: trunk/gcc/testsuite/gfortran.dg/reshape_order_5.f90 trunk/gcc/testsuite/gfortran.dg/reshape_shape_1.f90 Modified: trunk/gcc/fortran/ChangeLog trunk/gcc/fortran/check.c trunk/gcc/fortran/simplify.c trunk/gcc/testsuite/ChangeLog -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37203
[Bug fortran/37203] Check ORDER= of RESHAPE
--- Comment #8 from dfranke at gcc dot gnu dot org 2009-03-22 12:12 --- Subject: Bug 37203 Author: dfranke Date: Sun Mar 22 12:12:10 2009 New Revision: 144996 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=144996 Log: gcc/fortran/: 2009-03-22 Daniel Franke PR fortran/37203 * check.c (gfc_check_reshape): Additional checks for the SHAPE and ORDER arguments. * simplify.c (gfc_simplify_reshape): Converted argument checks to asserts. gcc/testsuite/: 2009-03-22 Daniel Franke PR fortran/37203 * gfortran.dg/reshape_order_5.f90: New. * gfortran.dg/reshape_shape_1.f90: New. Added: branches/fortran-dev/gcc/fortran/ChangeLog.dev branches/fortran-dev/gcc/testsuite/ChangeLog.fortran-dev branches/fortran-dev/gcc/testsuite/gfortran.dg/reshape_order_5.f90 branches/fortran-dev/gcc/testsuite/gfortran.dg/reshape_shape_1.f90 Modified: branches/fortran-dev/gcc/fortran/check.c branches/fortran-dev/gcc/fortran/simplify.c -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37203
[Bug fortran/37203] Check ORDER= of RESHAPE
--- Comment #7 from dfranke at gcc dot gnu dot org 2009-01-04 21:25 --- (In reply to comment #6) > Stupidity needs to be punished. Assigning myself to fix it. Patch: http://gcc.gnu.org/ml/fortran/2009-01/msg00049.html -- dfranke at gcc dot gnu dot org changed: What|Removed |Added URL||http://gcc.gnu.org/ml/fortra ||n/2009-01/msg00049.html Keywords||patch http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37203
[Bug fortran/37203] Check ORDER= of RESHAPE
--- Comment #6 from dfranke at gcc dot gnu dot org 2009-01-04 19:10 --- (In reply to comment #5) > (In reply to comment #4) > > which detects invalid permutations in the case of constant(!) arguments. > > Closing as fixed. > > > No, it's not. Reopening. > The initial testcase is still not catch. Note the emphasis on _constant_. To get the error, change the testcase to: integer, dimension(6), PARAMETER :: source1 = (/ 1, 2, 3, 4, 5, 6 /) integer, dimension(2), PARAMETER :: shape1 = (/ 2, 5/) integer, dimension(2), PARAMETER :: pad1 = (/ 0, 0/) write (unit=*,fmt=*) reshape(source1, shape1, pad1, (/2,1/)) ! Valid write (unit=*,fmt=*) reshape(source1, shape1, pad1, (/2,2/)) ! Invalid end And while trying to argue why this never will be caught as is, I realize that you are right. That SOURCE, SHAPE and PAD are variables doesn't matter as in this case ORDER is constant and can be checked. Stupidity needs to be punished. Assigning myself to fix it. -- dfranke at gcc dot gnu dot org changed: What|Removed |Added AssignedTo|unassigned at gcc dot gnu |dfranke at gcc dot gnu dot |dot org |org Status|REOPENED|ASSIGNED Last reconfirmed|2008-08-23 14:11:59 |2009-01-04 19:10:33 date|| http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37203
[Bug fortran/37203] Check ORDER= of RESHAPE
--- Comment #5 from mikael at gcc dot gnu dot org 2009-01-04 19:00 --- (In reply to comment #4) > which detects invalid permutations in the case of constant(!) arguments. > Closing as fixed. > No, it's not. Reopening. The initial testcase is still not catch. -- mikael at gcc dot gnu dot org changed: What|Removed |Added Status|RESOLVED|REOPENED Resolution|FIXED | http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37203
[Bug fortran/37203] Check ORDER= of RESHAPE
--- Comment #4 from dfranke at gcc dot gnu dot org 2009-01-04 14:56 --- simplify.c (gfc_simplify_reshape) has: 3547 if (x[order[i]]) 3548{ 3549 gfc_error ("Invalid permutation in ORDER parameter at %L", 3550 &e->where); 3551 gfc_free_expr (e); 3552 goto bad_reshape; 3553} which detects invalid permutations in the case of constant(!) arguments. Closing as fixed. -- dfranke at gcc dot gnu dot org changed: What|Removed |Added CC||dfranke at gcc dot gnu dot ||org Status|NEW |RESOLVED Resolution||FIXED http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37203
[Bug fortran/37203] Check ORDER= of RESHAPE
--- Comment #3 from tkoenig at gcc dot gnu dot org 2008-09-07 13:34 --- Subject: Bug 37203 Author: tkoenig Date: Sun Sep 7 13:33:18 2008 New Revision: 140086 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=140086 Log: 2008-09-07 Thomas Koenig <[EMAIL PROTECTED]> PR fortran/37203 * intrinsics/reshape_generic.c: Add checking on out-of-bounds and duplicate values of order argument. * 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-09-07 Thomas Koenig <[EMAIL PROTECTED]> PR fortran/37203 * gfortran.d/reshape_order_1.f90: New test case. * gfortran.d/reshape_order_2.f90: New test case. * gfortran.d/reshape_order_3.f90: New test case. * gfortran.d/reshape_order_4.f90: New test case. Added: trunk/gcc/testsuite/gfortran.dg/reshape_order_1.f90 trunk/gcc/testsuite/gfortran.dg/reshape_order_2.f90 trunk/gcc/testsuite/gfortran.dg/reshape_order_3.f90 trunk/gcc/testsuite/gfortran.dg/reshape_order_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 -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37203
[Bug fortran/37203] Check ORDER= of RESHAPE
--- Comment #2 from tkoenig at gcc dot gnu dot org 2008-09-07 09:12 --- I'm working on the run-time test. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37203
[Bug fortran/37203] Check ORDER= of RESHAPE
--- Comment #1 from tkoenig at gcc dot gnu dot org 2008-08-23 14:11 --- Confirmed. We should also have a run-time check for this: [EMAIL PROTECTED]:/tmp$ gfortran -fbounds-check foo.f90 [EMAIL PROTECTED]:/tmp$ ./a.out 1 6 2 0 3 0 4 0 5 0 *** glibc detected *** free(): invalid next size (fast): 0x00508950 *** Aborted [EMAIL PROTECTED]:/tmp$ -- tkoenig at gcc dot gnu dot org changed: What|Removed |Added CC||tkoenig at gcc dot gnu dot ||org Status|UNCONFIRMED |NEW Ever Confirmed|0 |1 Last reconfirmed|-00-00 00:00:00 |2008-08-23 14:11:59 date|| http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37203