public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug fortran/37203]  New: Check ORDER= of RESHAPE
@ 2008-08-22 17:44 burnus at gcc dot gnu dot org
  2008-08-23 14:13 ` [Bug fortran/37203] " tkoenig at gcc dot gnu dot org
                   ` (10 more replies)
  0 siblings, 11 replies; 12+ messages in thread
From: burnus at gcc dot gnu dot org @ 2008-08-22 17:44 UTC (permalink / raw)
  To: gcc-bugs

Found at
http://groups.google.com/group/gg95/browse_thread/thread/d27f173506fbb9cc

The following program compiles without any warning, but NAG f95 prints:

Error: line 6: Value 2 in ORDER arg to RESHAPE duplicated

integer, dimension(6) :: source1 = (/ 1, 2, 3, 4, 5, 6 /)
integer, dimension(2) :: shape1 = (/ 2, 5/)
integer, dimension(2) :: pad1 = (/ 0, 0/)

write (unit=*,fmt=*) reshape(source1, shape1, pad1, (/2,1/)) ! Valid
write (unit=*,fmt=*) reshape(source1, shape1, pad1, (/2,2/)) ! Invalid
end


-- 
           Summary: Check ORDER= of RESHAPE
           Product: gcc
           Version: 4.4.0
            Status: UNCONFIRMED
          Keywords: diagnostic
          Severity: normal
          Priority: P3
         Component: fortran
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: burnus at gcc dot gnu dot org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37203


^ permalink raw reply	[flat|nested] 12+ messages in thread

* [Bug fortran/37203] Check ORDER= of RESHAPE
  2008-08-22 17:44 [Bug fortran/37203] New: Check ORDER= of RESHAPE burnus at gcc dot gnu dot org
@ 2008-08-23 14:13 ` tkoenig at gcc dot gnu dot org
  2008-09-07  9:14 ` tkoenig at gcc dot gnu dot org
                   ` (9 subsequent siblings)
  10 siblings, 0 replies; 12+ messages in thread
From: tkoenig at gcc dot gnu dot org @ 2008-08-23 14:13 UTC (permalink / raw)
  To: gcc-bugs



------- 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:

tkoenig@gcc16:/tmp$ gfortran -fbounds-check foo.f90
tkoenig@gcc16:/tmp$ ./a.out
           1           6           2           0           3           0       
   4           0           5           0
*** glibc detected *** free(): invalid next size (fast): 0x0000000000508950 ***
Aborted
tkoenig@gcc16:/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|0000-00-00 00:00:00         |2008-08-23 14:11:59
               date|                            |


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37203


^ permalink raw reply	[flat|nested] 12+ messages in thread

* [Bug fortran/37203] Check ORDER= of RESHAPE
  2008-08-22 17:44 [Bug fortran/37203] New: Check ORDER= of RESHAPE burnus at gcc dot gnu dot org
  2008-08-23 14:13 ` [Bug fortran/37203] " tkoenig at gcc dot gnu dot org
@ 2008-09-07  9:14 ` tkoenig at gcc dot gnu dot org
  2008-09-07 13:36 ` tkoenig at gcc dot gnu dot org
                   ` (8 subsequent siblings)
  10 siblings, 0 replies; 12+ messages in thread
From: tkoenig at gcc dot gnu dot org @ 2008-09-07  9:14 UTC (permalink / raw)
  To: gcc-bugs



------- 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


^ permalink raw reply	[flat|nested] 12+ messages in thread

* [Bug fortran/37203] Check ORDER= of RESHAPE
  2008-08-22 17:44 [Bug fortran/37203] New: Check ORDER= of RESHAPE burnus at gcc dot gnu dot org
  2008-08-23 14:13 ` [Bug fortran/37203] " tkoenig at gcc dot gnu dot org
  2008-09-07  9:14 ` tkoenig at gcc dot gnu dot org
@ 2008-09-07 13:36 ` tkoenig at gcc dot gnu dot org
  2009-01-04 14:57 ` dfranke at gcc dot gnu dot org
                   ` (7 subsequent siblings)
  10 siblings, 0 replies; 12+ messages in thread
From: tkoenig at gcc dot gnu dot org @ 2008-09-07 13:36 UTC (permalink / raw)
  To: gcc-bugs



------- 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  <tkoenig@gcc.gnu.org>

        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  <tkoenig@gcc.gnu.org>

        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


^ permalink raw reply	[flat|nested] 12+ messages in thread

* [Bug fortran/37203] Check ORDER= of RESHAPE
  2008-08-22 17:44 [Bug fortran/37203] New: Check ORDER= of RESHAPE burnus at gcc dot gnu dot org
                   ` (2 preceding siblings ...)
  2008-09-07 13:36 ` tkoenig at gcc dot gnu dot org
@ 2009-01-04 14:57 ` dfranke at gcc dot gnu dot org
  2009-01-04 19:00 ` mikael at gcc dot gnu dot org
                   ` (6 subsequent siblings)
  10 siblings, 0 replies; 12+ messages in thread
From: dfranke at gcc dot gnu dot org @ 2009-01-04 14:57 UTC (permalink / raw)
  To: gcc-bugs



------- 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


^ permalink raw reply	[flat|nested] 12+ messages in thread

* [Bug fortran/37203] Check ORDER= of RESHAPE
  2008-08-22 17:44 [Bug fortran/37203] New: Check ORDER= of RESHAPE burnus at gcc dot gnu dot org
                   ` (3 preceding siblings ...)
  2009-01-04 14:57 ` dfranke at gcc dot gnu dot org
@ 2009-01-04 19:00 ` mikael at gcc dot gnu dot org
  2009-01-04 19:10 ` dfranke at gcc dot gnu dot org
                   ` (5 subsequent siblings)
  10 siblings, 0 replies; 12+ messages in thread
From: mikael at gcc dot gnu dot org @ 2009-01-04 19:00 UTC (permalink / raw)
  To: gcc-bugs



------- 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


^ permalink raw reply	[flat|nested] 12+ messages in thread

* [Bug fortran/37203] Check ORDER= of RESHAPE
  2008-08-22 17:44 [Bug fortran/37203] New: Check ORDER= of RESHAPE burnus at gcc dot gnu dot org
                   ` (4 preceding siblings ...)
  2009-01-04 19:00 ` mikael at gcc dot gnu dot org
@ 2009-01-04 19:10 ` dfranke at gcc dot gnu dot org
  2009-01-04 21:25 ` dfranke at gcc dot gnu dot org
                   ` (4 subsequent siblings)
  10 siblings, 0 replies; 12+ messages in thread
From: dfranke at gcc dot gnu dot org @ 2009-01-04 19:10 UTC (permalink / raw)
  To: gcc-bugs



------- 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


^ permalink raw reply	[flat|nested] 12+ messages in thread

* [Bug fortran/37203] Check ORDER= of RESHAPE
  2008-08-22 17:44 [Bug fortran/37203] New: Check ORDER= of RESHAPE burnus at gcc dot gnu dot org
                   ` (5 preceding siblings ...)
  2009-01-04 19:10 ` dfranke at gcc dot gnu dot org
@ 2009-01-04 21:25 ` dfranke at gcc dot gnu dot org
  2009-03-22 12:12 ` dfranke at gcc dot gnu dot org
                   ` (3 subsequent siblings)
  10 siblings, 0 replies; 12+ messages in thread
From: dfranke at gcc dot gnu dot org @ 2009-01-04 21:25 UTC (permalink / raw)
  To: gcc-bugs



------- 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


^ permalink raw reply	[flat|nested] 12+ messages in thread

* [Bug fortran/37203] Check ORDER= of RESHAPE
  2008-08-22 17:44 [Bug fortran/37203] New: Check ORDER= of RESHAPE burnus at gcc dot gnu dot org
                   ` (6 preceding siblings ...)
  2009-01-04 21:25 ` dfranke at gcc dot gnu dot org
@ 2009-03-22 12:12 ` dfranke at gcc dot gnu dot org
  2009-06-04 21:53 ` burnus at gcc dot gnu dot org
                   ` (2 subsequent siblings)
  10 siblings, 0 replies; 12+ messages in thread
From: dfranke at gcc dot gnu dot org @ 2009-03-22 12:12 UTC (permalink / raw)
  To: gcc-bugs



------- 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  <franke.daniel@gmail.com>

        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  <franke.daniel@gmail.com>

        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


^ permalink raw reply	[flat|nested] 12+ messages in thread

* [Bug fortran/37203] Check ORDER= of RESHAPE
  2008-08-22 17:44 [Bug fortran/37203] New: Check ORDER= of RESHAPE burnus at gcc dot gnu dot org
                   ` (7 preceding siblings ...)
  2009-03-22 12:12 ` dfranke at gcc dot gnu dot org
@ 2009-06-04 21:53 ` burnus at gcc dot gnu dot org
  2009-06-04 21:59 ` burnus at gcc dot gnu dot org
  2009-06-06 21:10 ` burnus at gcc dot gnu dot org
  10 siblings, 0 replies; 12+ messages in thread
From: burnus at gcc dot gnu dot org @ 2009-06-04 21:53 UTC (permalink / raw)
  To: gcc-bugs



------- 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  <franke.daniel@gmail.com>

        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  <franke.daniel@gmail.com>

        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


^ permalink raw reply	[flat|nested] 12+ messages in thread

* [Bug fortran/37203] Check ORDER= of RESHAPE
  2008-08-22 17:44 [Bug fortran/37203] New: Check ORDER= of RESHAPE burnus at gcc dot gnu dot org
                   ` (8 preceding siblings ...)
  2009-06-04 21:53 ` burnus at gcc dot gnu dot org
@ 2009-06-04 21:59 ` burnus at gcc dot gnu dot org
  2009-06-06 21:10 ` burnus at gcc dot gnu dot org
  10 siblings, 0 replies; 12+ messages in thread
From: burnus at gcc dot gnu dot org @ 2009-06-04 21:59 UTC (permalink / raw)
  To: gcc-bugs



------- 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


^ permalink raw reply	[flat|nested] 12+ messages in thread

* [Bug fortran/37203] Check ORDER= of RESHAPE
  2008-08-22 17:44 [Bug fortran/37203] New: Check ORDER= of RESHAPE burnus at gcc dot gnu dot org
                   ` (9 preceding siblings ...)
  2009-06-04 21:59 ` burnus at gcc dot gnu dot org
@ 2009-06-06 21:10 ` burnus at gcc dot gnu dot org
  10 siblings, 0 replies; 12+ messages in thread
From: burnus at gcc dot gnu dot org @ 2009-06-06 21:10 UTC (permalink / raw)
  To: gcc-bugs



------- 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  <franke.daniel@gmail.com>

        PR fortran/37203
        * simplify.c (gfc_simplify_reshape): Fixed reshaping of empty
        * arrays
        without padding.

2009-06-06  Daniel Franke  <franke.daniel@gmail.com>

        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


^ permalink raw reply	[flat|nested] 12+ messages in thread

end of thread, other threads:[~2009-06-06 21:10 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2008-08-22 17:44 [Bug fortran/37203] New: Check ORDER= of RESHAPE burnus at gcc dot gnu dot org
2008-08-23 14:13 ` [Bug fortran/37203] " tkoenig at gcc dot gnu dot org
2008-09-07  9:14 ` tkoenig at gcc dot gnu dot org
2008-09-07 13:36 ` tkoenig at gcc dot gnu dot org
2009-01-04 14:57 ` dfranke at gcc dot gnu dot org
2009-01-04 19:00 ` mikael at gcc dot gnu dot org
2009-01-04 19:10 ` dfranke at gcc dot gnu dot org
2009-01-04 21:25 ` dfranke at gcc dot gnu dot org
2009-03-22 12:12 ` dfranke at gcc dot gnu dot org
2009-06-04 21:53 ` burnus at gcc dot gnu dot org
2009-06-04 21:59 ` burnus at gcc dot gnu dot org
2009-06-06 21:10 ` burnus at gcc dot gnu dot org

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).