public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug fortran/36874]  New: Add shape checks to cshift/eoshift
@ 2008-07-19 13:32 burnus at gcc dot gnu dot org
  2008-07-19 13:49 ` [Bug fortran/36874] " burnus at gcc dot gnu dot org
                   ` (11 more replies)
  0 siblings, 12 replies; 13+ messages in thread
From: burnus at gcc dot gnu dot org @ 2008-07-19 13:32 UTC (permalink / raw)
  To: gcc-bugs

CSHIFT (array, shift [dim=])
eoshift(array, shift, boundary, dim)

The rank of shift and boundary is one less than array. The shape of shift and
boundary should be conformable to array (after "removing" dimension dim).


-- 
           Summary: Add shape checks to cshift/eoshift
           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=36874


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

* [Bug fortran/36874] Add shape checks to cshift/eoshift
  2008-07-19 13:32 [Bug fortran/36874] New: Add shape checks to cshift/eoshift burnus at gcc dot gnu dot org
@ 2008-07-19 13:49 ` burnus at gcc dot gnu dot org
  2008-07-28 10:49 ` tkoenig at gcc dot gnu dot org
                   ` (10 subsequent siblings)
  11 siblings, 0 replies; 13+ messages in thread
From: burnus at gcc dot gnu dot org @ 2008-07-19 13:49 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #1 from burnus at gcc dot gnu dot org  2008-07-19 13:48 -------
Note: One should have a run-time and a compile-time check.

Example:
  real, dimension(1,0) :: a, b, c
  b = eoshift (a,(/1/))

Since dim=1, the shape of the 2nd dimension of A needs to be the same as the
first dimension of SHAPE. However, for A one has 0 while for SHAPE it is 1.


-- 


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


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

* [Bug fortran/36874] Add shape checks to cshift/eoshift
  2008-07-19 13:32 [Bug fortran/36874] New: Add shape checks to cshift/eoshift burnus at gcc dot gnu dot org
  2008-07-19 13:49 ` [Bug fortran/36874] " burnus at gcc dot gnu dot org
@ 2008-07-28 10:49 ` tkoenig at gcc dot gnu dot org
  2008-07-28 11:22 ` burnus at gcc dot gnu dot org
                   ` (9 subsequent siblings)
  11 siblings, 0 replies; 13+ messages in thread
From: tkoenig at gcc dot gnu dot org @ 2008-07-28 10:49 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #2 from tkoenig at gcc dot gnu dot org  2008-07-28 10:48 -------
Why a run-time check?

AFAIK, we can always determine the rank at runtime, so unless somebody messes
with our array descriptors big time, we should be safe.


-- 

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-07-28 10:48:37
               date|                            |


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


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

* [Bug fortran/36874] Add shape checks to cshift/eoshift
  2008-07-19 13:32 [Bug fortran/36874] New: Add shape checks to cshift/eoshift burnus at gcc dot gnu dot org
  2008-07-19 13:49 ` [Bug fortran/36874] " burnus at gcc dot gnu dot org
  2008-07-28 10:49 ` tkoenig at gcc dot gnu dot org
@ 2008-07-28 11:22 ` burnus at gcc dot gnu dot org
  2009-01-19 20:42 ` dfranke at gcc dot gnu dot org
                   ` (8 subsequent siblings)
  11 siblings, 0 replies; 13+ messages in thread
From: burnus at gcc dot gnu dot org @ 2008-07-28 11:22 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #3 from burnus at gcc dot gnu dot org  2008-07-28 11:21 -------
> Why a run-time check?
Because the shape might not be known at compile time? And a compile-time check
because compile-time checks are nicer ;-)

> AFAIK, we can always determine the rank at runtime
Yes, the RANK should be known (even) at compile time, but the SHAPE might be
only be known at run time. (Shape = how many elements per dimension; rank =
number of dimensions.)

(By the way, the rank is already checked.)


-- 


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


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

* [Bug fortran/36874] Add shape checks to cshift/eoshift
  2008-07-19 13:32 [Bug fortran/36874] New: Add shape checks to cshift/eoshift burnus at gcc dot gnu dot org
                   ` (2 preceding siblings ...)
  2008-07-28 11:22 ` burnus at gcc dot gnu dot org
@ 2009-01-19 20:42 ` dfranke at gcc dot gnu dot org
  2009-01-24 18:39 ` dfranke at gcc dot gnu dot org
                   ` (7 subsequent siblings)
  11 siblings, 0 replies; 13+ messages in thread
From: dfranke at gcc dot gnu dot org @ 2009-01-19 20:42 UTC (permalink / raw)
  To: gcc-bugs



-- 

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|NEW                         |ASSIGNED
   Last reconfirmed|2008-07-28 10:48:37         |2009-01-19 20:41:54
               date|                            |


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


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

* [Bug fortran/36874] Add shape checks to cshift/eoshift
  2008-07-19 13:32 [Bug fortran/36874] New: Add shape checks to cshift/eoshift burnus at gcc dot gnu dot org
                   ` (3 preceding siblings ...)
  2009-01-19 20:42 ` dfranke at gcc dot gnu dot org
@ 2009-01-24 18:39 ` dfranke at gcc dot gnu dot org
  2009-01-24 19:41 ` burnus at gcc dot gnu dot org
                   ` (6 subsequent siblings)
  11 siblings, 0 replies; 13+ messages in thread
From: dfranke at gcc dot gnu dot org @ 2009-01-24 18:39 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #4 from dfranke at gcc dot gnu dot org  2009-01-24 18:39 -------
After adding the the missing checks to gfc_check_cshift() and
gfc_check_eoshift() respectively, I get a couple of errors for
gfortran.dg/zero_sized_1.f90:

$> gfortran-svn -g -Wall -W zero_sized_1.f90
zero_sized_1.f90:18.36:

  if (any(cshift(tempm(5:4,:),shift=(/1,-1/),dim=2)/= 0)) call abort
                                    1
Error: 'shift' argument of 'cshift' intrinsic at (1) has invalid shape in
dimension 1 (0/2)
[... snipped more ...]
zero_sized_1.f90:37.37:

  if (any(eoshift(tempm(5:4,:),shift=(/1,-1/),dim=2)/= 0)) call abort
                                     1
Error: 'shift' argument of 'eoshift' intrinsic at (1) has invalid shape in
dimension 1 (0/2)
[... snipped more ...]

In comparison, Intel-10.1 accepts it as is while Lahey rejects it with similar
(but less detailed) error messages.


Are runtime checks required to check the shape of the other arguments if ARRAY
is zero-sized?


-- 


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


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

* [Bug fortran/36874] Add shape checks to cshift/eoshift
  2008-07-19 13:32 [Bug fortran/36874] New: Add shape checks to cshift/eoshift burnus at gcc dot gnu dot org
                   ` (4 preceding siblings ...)
  2009-01-24 18:39 ` dfranke at gcc dot gnu dot org
@ 2009-01-24 19:41 ` burnus at gcc dot gnu dot org
  2009-04-05 20:11 ` dfranke at gcc dot gnu dot org
                   ` (5 subsequent siblings)
  11 siblings, 0 replies; 13+ messages in thread
From: burnus at gcc dot gnu dot org @ 2009-01-24 19:41 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #5 from burnus at gcc dot gnu dot org  2009-01-24 19:41 -------
(In reply to comment #4)
> After adding the the missing checks to gfc_check_cshift() and
> gfc_check_eoshift() respectively, I get a couple of errors for
> gfortran.dg/zero_sized_1.f90 [...]

Thanks! The errors look OK.

> Are runtime checks required to check the shape of the other arguments if ARRAY
> is zero-sized?

Good question. For completeness, one can add the check, which is also included
in NAG f95 (which does not have a compile-time check):

  real, dimension(4,0) :: a,c
  integer :: b(1)
  c = eoshift (a, shift=b(2:1)) ! OK - shape = 0
  c = eoshift (a, shift=b(1))   ! OK - scalar
  c = eoshift (a, shift=b(1:1)) ! Wrong: shape = 1 vs. 0
  end

Shape mismatch (dimension 1) between ARRAY and SHIFT in CSHIFT
Program terminated by fatal error
In $main$, line 5 of shapetest.f90

In any case, the check should only be enabled with -fbounds-check and enclosed
with if(unlikely(option...)). If the normal program flow is too much
interrupted, one can also think about not adding the run-time check for
zero-sized arrays.


-- 


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


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

* [Bug fortran/36874] Add shape checks to cshift/eoshift
  2008-07-19 13:32 [Bug fortran/36874] New: Add shape checks to cshift/eoshift burnus at gcc dot gnu dot org
                   ` (5 preceding siblings ...)
  2009-01-24 19:41 ` burnus at gcc dot gnu dot org
@ 2009-04-05 20:11 ` dfranke at gcc dot gnu dot org
  2009-06-07 13:46 ` burnus at gcc dot gnu dot org
                   ` (4 subsequent siblings)
  11 siblings, 0 replies; 13+ messages in thread
From: dfranke at gcc dot gnu dot org @ 2009-04-05 20:11 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #6 from dfranke at gcc dot gnu dot org  2009-04-05 20:10 -------
Subject: Bug 36874

Author: dfranke
Date: Sun Apr  5 20:09:58 2009
New Revision: 145570

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=145570
Log:
gcc/fortran/:
2009-04-05  Daniel Franke  <franke.daniel@gmail.com>

        PR fortran/36874
        * check.c (gfc_check_cshift): Added missing shape-conformance checks.
        (gfc_check_eoshift): Likewise.


gcc/testsuite/:
2009-04-05  Daniel Franke  <franke.daniel@gmail.com>

        PR fortran/36874
        * gfortran.dg/intrinsic_argument_conformance_2.f90: Adjusted error
message.
        * gfortran.dg/zero_sized_1.f90: Removed checks with incompatible
shapes.
        * gfortran.dg/zero_sized_5.f90: Likewise.



Modified:
    branches/fortran-dev/gcc/fortran/ChangeLog.dev
    branches/fortran-dev/gcc/fortran/check.c
    branches/fortran-dev/gcc/testsuite/ChangeLog.fortran-dev
   
branches/fortran-dev/gcc/testsuite/gfortran.dg/intrinsic_argument_conformance_2.f90
    branches/fortran-dev/gcc/testsuite/gfortran.dg/zero_sized_1.f90
    branches/fortran-dev/gcc/testsuite/gfortran.dg/zero_sized_5.f90


-- 


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


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

* [Bug fortran/36874] Add shape checks to cshift/eoshift
  2008-07-19 13:32 [Bug fortran/36874] New: Add shape checks to cshift/eoshift burnus at gcc dot gnu dot org
                   ` (6 preceding siblings ...)
  2009-04-05 20:11 ` dfranke at gcc dot gnu dot org
@ 2009-06-07 13:46 ` burnus at gcc dot gnu dot org
  2009-06-07 13:59 ` burnus at gcc dot gnu dot org
                   ` (3 subsequent siblings)
  11 siblings, 0 replies; 13+ messages in thread
From: burnus at gcc dot gnu dot org @ 2009-06-07 13:46 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #7 from burnus at gcc dot gnu dot org  2009-06-07 13:46 -------
Subject: Bug 36874

Author: burnus
Date: Sun Jun  7 13:45:47 2009
New Revision: 148247

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=148247
Log:
2009-06-07  Daniel Franke  <franke.daniel@gmail.com>

        * check.c (dim_rank_check): Return SUCCESS if DIM=NULL.
        (gfc_check_lbound): Removed (now) redundant check for DIM=NULL.
        (gfc_check_minloc_maxloc): Likewise.
        (check_reduction): Likewise.
        (gfc_check_size): Likewise.
        (gfc_check_ubound): Likewise.
        (gfc_check_cshift): Added missing shape-conformance checks.
        (gfc_check_eoshift): Likewise.
        * gfortran.h (gfc_check_conformance): Modified prototype to
printf-style.
        * expr.c (gfc_check_conformance): Accept error-message chunks in
        printf-style. Changed all callers.

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

        PR fortran/36874
        * gfortran.dg/intrinsic_argument_conformance_2.f90: Adjusted error
message.
        * gfortran.dg/zero_sized_1.f90: Removed checks with incompatible
shapes.
        * gfortran.dg/zero_sized_5.f90: Likewise.


Modified:
    trunk/gcc/fortran/ChangeLog
    trunk/gcc/fortran/arith.c
    trunk/gcc/fortran/check.c
    trunk/gcc/fortran/expr.c
    trunk/gcc/fortran/gfortran.h
    trunk/gcc/fortran/intrinsic.c
    trunk/gcc/fortran/resolve.c
    trunk/gcc/testsuite/ChangeLog
    trunk/gcc/testsuite/gfortran.dg/intrinsic_argument_conformance_2.f90
    trunk/gcc/testsuite/gfortran.dg/zero_sized_1.f90
    trunk/gcc/testsuite/gfortran.dg/zero_sized_5.f90


-- 


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


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

* [Bug fortran/36874] Add shape checks to cshift/eoshift
  2008-07-19 13:32 [Bug fortran/36874] New: Add shape checks to cshift/eoshift burnus at gcc dot gnu dot org
                   ` (7 preceding siblings ...)
  2009-06-07 13:46 ` burnus at gcc dot gnu dot org
@ 2009-06-07 13:59 ` burnus at gcc dot gnu dot org
  2009-06-07 14:41 ` tkoenig at gcc dot gnu dot org
                   ` (2 subsequent siblings)
  11 siblings, 0 replies; 13+ messages in thread
From: burnus at gcc dot gnu dot org @ 2009-06-07 13:59 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #8 from burnus at gcc dot gnu dot org  2009-06-07 13:59 -------
Compile time check is now there (4.5 trunk). Missing is a run-time check.
Example:

  real, dimension(1,0) :: a, b, c
  integer :: sp(3), i
  a = 4.0
  sp = 1
  i = 1
  b = eoshift (a,sp(1:i)) ! Invalid
  end

NAG f95 writes at run time:
  Shape mismatch (dimension 1) between ARRAY and SHIFT in CSHIFT


-- 


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


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

* [Bug fortran/36874] Add shape checks to cshift/eoshift
  2008-07-19 13:32 [Bug fortran/36874] New: Add shape checks to cshift/eoshift burnus at gcc dot gnu dot org
                   ` (8 preceding siblings ...)
  2009-06-07 13:59 ` burnus at gcc dot gnu dot org
@ 2009-06-07 14:41 ` tkoenig at gcc dot gnu dot org
  2009-07-19 15:08 ` tkoenig at gcc dot gnu dot org
  2009-07-25 12:27 ` tkoenig at gcc dot gnu dot org
  11 siblings, 0 replies; 13+ messages in thread
From: tkoenig at gcc dot gnu dot org @ 2009-06-07 14:41 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #9 from tkoenig at gcc dot gnu dot org  2009-06-07 14:41 -------
If nobody minds, I'll do this (it's part of PR 34670
anyway).


-- 

tkoenig at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
OtherBugsDependingO|                            |34670
              nThis|                            |
         AssignedTo|dfranke at gcc dot gnu dot  |tkoenig at gcc dot gnu dot
                   |org                         |org


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


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

* [Bug fortran/36874] Add shape checks to cshift/eoshift
  2008-07-19 13:32 [Bug fortran/36874] New: Add shape checks to cshift/eoshift burnus at gcc dot gnu dot org
                   ` (9 preceding siblings ...)
  2009-06-07 14:41 ` tkoenig at gcc dot gnu dot org
@ 2009-07-19 15:08 ` tkoenig at gcc dot gnu dot org
  2009-07-25 12:27 ` tkoenig at gcc dot gnu dot org
  11 siblings, 0 replies; 13+ messages in thread
From: tkoenig at gcc dot gnu dot org @ 2009-07-19 15:08 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #10 from tkoenig at gcc dot gnu dot org  2009-07-19 15:07 -------
Subject: Bug 36874

Author: tkoenig
Date: Sun Jul 19 15:07:21 2009
New Revision: 149792

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=149792
Log:
2009-07-19  Thomas Koenig  <tkoenig@gcc.gnu.org>

        PR libfortran/34670
        PR libfortran/36874
        * Makefile.am:  Add bounds.c
        * libgfortran.h (bounds_equal_extents):  Add prototype.
        (bounds_iforeach_return):  Likewise.
        (bounds_ifunction_return):  Likewise.
        (bounds_reduced_extents):  Likewise.
        * runtime/bounds.c:  New file.
        (bounds_iforeach_return):  New function; correct typo in
        error message.
        (bounds_ifunction_return):  New function.
        (bounds_equal_extents):  New function.
        (bounds_reduced_extents):  Likewise.
        * intrinsics/cshift0.c (cshift0):  Use new functions
        for bounds checking.
        * intrinsics/eoshift0.c (eoshift0):  Likewise.
        * intrinsics/eoshift2.c (eoshift2):  Likewise.
        * m4/iforeach.m4:  Likewise.
        * m4/eoshift1.m4:  Likewise.
        * m4/eoshift3.m4:  Likewise.
        * m4/cshift1.m4:  Likewise.
        * m4/ifunction.m4:  Likewise.
        * Makefile.in:  Regenerated.
        * generated/cshift1_16.c: Regenerated.
        * generated/cshift1_4.c: Regenerated.
        * generated/cshift1_8.c: Regenerated.
        * generated/eoshift1_16.c: Regenerated.
        * generated/eoshift1_4.c: Regenerated.
        * generated/eoshift1_8.c: Regenerated.
        * generated/eoshift3_16.c: Regenerated.
        * generated/eoshift3_4.c: Regenerated.
        * generated/eoshift3_8.c: Regenerated.
        * generated/maxloc0_16_i1.c: Regenerated.
        * generated/maxloc0_16_i16.c: Regenerated.
        * generated/maxloc0_16_i2.c: Regenerated.
        * generated/maxloc0_16_i4.c: Regenerated.
        * generated/maxloc0_16_i8.c: Regenerated.
        * generated/maxloc0_16_r10.c: Regenerated.
        * generated/maxloc0_16_r16.c: Regenerated.
        * generated/maxloc0_16_r4.c: Regenerated.
        * generated/maxloc0_16_r8.c: Regenerated.
        * generated/maxloc0_4_i1.c: Regenerated.
        * generated/maxloc0_4_i16.c: Regenerated.
        * generated/maxloc0_4_i2.c: Regenerated.
        * generated/maxloc0_4_i4.c: Regenerated.
        * generated/maxloc0_4_i8.c: Regenerated.
        * generated/maxloc0_4_r10.c: Regenerated.
        * generated/maxloc0_4_r16.c: Regenerated.
        * generated/maxloc0_4_r4.c: Regenerated.
        * generated/maxloc0_4_r8.c: Regenerated.
        * generated/maxloc0_8_i1.c: Regenerated.
        * generated/maxloc0_8_i16.c: Regenerated.
        * generated/maxloc0_8_i2.c: Regenerated.
        * generated/maxloc0_8_i4.c: Regenerated.
        * generated/maxloc0_8_i8.c: Regenerated.
        * generated/maxloc0_8_r10.c: Regenerated.
        * generated/maxloc0_8_r16.c: Regenerated.
        * generated/maxloc0_8_r4.c: Regenerated.
        * generated/maxloc0_8_r8.c: Regenerated.
        * generated/maxloc1_16_i1.c: Regenerated.
        * generated/maxloc1_16_i16.c: Regenerated.
        * generated/maxloc1_16_i2.c: Regenerated.
        * generated/maxloc1_16_i4.c: Regenerated.
        * generated/maxloc1_16_i8.c: Regenerated.
        * generated/maxloc1_16_r10.c: Regenerated.
        * generated/maxloc1_16_r16.c: Regenerated.
        * generated/maxloc1_16_r4.c: Regenerated.
        * generated/maxloc1_16_r8.c: Regenerated.
        * generated/maxloc1_4_i1.c: Regenerated.
        * generated/maxloc1_4_i16.c: Regenerated.
        * generated/maxloc1_4_i2.c: Regenerated.
        * generated/maxloc1_4_i4.c: Regenerated.
        * generated/maxloc1_4_i8.c: Regenerated.
        * generated/maxloc1_4_r10.c: Regenerated.
        * generated/maxloc1_4_r16.c: Regenerated.
        * generated/maxloc1_4_r4.c: Regenerated.
        * generated/maxloc1_4_r8.c: Regenerated.
        * generated/maxloc1_8_i1.c: Regenerated.
        * generated/maxloc1_8_i16.c: Regenerated.
        * generated/maxloc1_8_i2.c: Regenerated.
        * generated/maxloc1_8_i4.c: Regenerated.
        * generated/maxloc1_8_i8.c: Regenerated.
        * generated/maxloc1_8_r10.c: Regenerated.
        * generated/maxloc1_8_r16.c: Regenerated.
        * generated/maxloc1_8_r4.c: Regenerated.
        * generated/maxloc1_8_r8.c: Regenerated.
        * generated/maxval_i1.c: Regenerated.
        * generated/maxval_i16.c: Regenerated.
        * generated/maxval_i2.c: Regenerated.
        * generated/maxval_i4.c: Regenerated.
        * generated/maxval_i8.c: Regenerated.
        * generated/maxval_r10.c: Regenerated.
        * generated/maxval_r16.c: Regenerated.
        * generated/maxval_r4.c: Regenerated.
        * generated/maxval_r8.c: Regenerated.
        * generated/minloc0_16_i1.c: Regenerated.
        * generated/minloc0_16_i16.c: Regenerated.
        * generated/minloc0_16_i2.c: Regenerated.
        * generated/minloc0_16_i4.c: Regenerated.
        * generated/minloc0_16_i8.c: Regenerated.
        * generated/minloc0_16_r10.c: Regenerated.
        * generated/minloc0_16_r16.c: Regenerated.
        * generated/minloc0_16_r4.c: Regenerated.
        * generated/minloc0_16_r8.c: Regenerated.
        * generated/minloc0_4_i1.c: Regenerated.
        * generated/minloc0_4_i16.c: Regenerated.
        * generated/minloc0_4_i2.c: Regenerated.
        * generated/minloc0_4_i4.c: Regenerated.
        * generated/minloc0_4_i8.c: Regenerated.
        * generated/minloc0_4_r10.c: Regenerated.
        * generated/minloc0_4_r16.c: Regenerated.
        * generated/minloc0_4_r4.c: Regenerated.
        * generated/minloc0_4_r8.c: Regenerated.
        * generated/minloc0_8_i1.c: Regenerated.
        * generated/minloc0_8_i16.c: Regenerated.
        * generated/minloc0_8_i2.c: Regenerated.
        * generated/minloc0_8_i4.c: Regenerated.
        * generated/minloc0_8_i8.c: Regenerated.
        * generated/minloc0_8_r10.c: Regenerated.
        * generated/minloc0_8_r16.c: Regenerated.
        * generated/minloc0_8_r4.c: Regenerated.
        * generated/minloc0_8_r8.c: Regenerated.
        * generated/minloc1_16_i1.c: Regenerated.
        * generated/minloc1_16_i16.c: Regenerated.
        * generated/minloc1_16_i2.c: Regenerated.
        * generated/minloc1_16_i4.c: Regenerated.
        * generated/minloc1_16_i8.c: Regenerated.
        * generated/minloc1_16_r10.c: Regenerated.
        * generated/minloc1_16_r16.c: Regenerated.
        * generated/minloc1_16_r4.c: Regenerated.
        * generated/minloc1_16_r8.c: Regenerated.
        * generated/minloc1_4_i1.c: Regenerated.
        * generated/minloc1_4_i16.c: Regenerated.
        * generated/minloc1_4_i2.c: Regenerated.
        * generated/minloc1_4_i4.c: Regenerated.
        * generated/minloc1_4_i8.c: Regenerated.
        * generated/minloc1_4_r10.c: Regenerated.
        * generated/minloc1_4_r16.c: Regenerated.
        * generated/minloc1_4_r4.c: Regenerated.
        * generated/minloc1_4_r8.c: Regenerated.
        * generated/minloc1_8_i1.c: Regenerated.
        * generated/minloc1_8_i16.c: Regenerated.
        * generated/minloc1_8_i2.c: Regenerated.
        * generated/minloc1_8_i4.c: Regenerated.
        * generated/minloc1_8_i8.c: Regenerated.
        * generated/minloc1_8_r10.c: Regenerated.
        * generated/minloc1_8_r16.c: Regenerated.
        * generated/minloc1_8_r4.c: Regenerated.
        * generated/minloc1_8_r8.c: Regenerated.
        * generated/minval_i1.c: Regenerated.
        * generated/minval_i16.c: Regenerated.
        * generated/minval_i2.c: Regenerated.
        * generated/minval_i4.c: Regenerated.
        * generated/minval_i8.c: Regenerated.
        * generated/minval_r10.c: Regenerated.
        * generated/minval_r16.c: Regenerated.
        * generated/minval_r4.c: Regenerated.
        * generated/minval_r8.c: Regenerated.
        * generated/product_c10.c: Regenerated.
        * generated/product_c16.c: Regenerated.
        * generated/product_c4.c: Regenerated.
        * generated/product_c8.c: Regenerated.
        * generated/product_i1.c: Regenerated.
        * generated/product_i16.c: Regenerated.
        * generated/product_i2.c: Regenerated.
        * generated/product_i4.c: Regenerated.
        * generated/product_i8.c: Regenerated.
        * generated/product_r10.c: Regenerated.
        * generated/product_r16.c: Regenerated.
        * generated/product_r4.c: Regenerated.
        * generated/product_r8.c: Regenerated.
        * generated/sum_c10.c: Regenerated.
        * generated/sum_c16.c: Regenerated.
        * generated/sum_c4.c: Regenerated.
        * generated/sum_c8.c: Regenerated.
        * generated/sum_i1.c: Regenerated.
        * generated/sum_i16.c: Regenerated.
        * generated/sum_i2.c: Regenerated.
        * generated/sum_i4.c: Regenerated.
        * generated/sum_i8.c: Regenerated.
        * generated/sum_r10.c: Regenerated.
        * generated/sum_r16.c: Regenerated.
        * generated/sum_r4.c: Regenerated.
        * generated/sum_r8.c: Regenerated.

2009-07-19   Thomas Koenig  <tkoenig@gcc.gnu.org>

        PR libfortran/34670
        PR libfortran/36874
        * gfortran.dg/cshift_bounds_1.f90:  New test.
        * gfortran.dg/cshift_bounds_2.f90:  New test.
        * gfortran.dg/cshift_bounds_3.f90:  New test.
        * gfortran.dg/cshift_bounds_4.f90:  New test.
        * gfortran.dg/eoshift_bounds_1.f90:  New test.
        * gfortran.dg/maxloc_bounds_4.f90:  Correct typo in error message.
        * gfortran.dg/maxloc_bounds_5.f90:  Correct typo in error message.
        * gfortran.dg/maxloc_bounds_7.f90:  Correct typo in error message.


Added:
    trunk/gcc/testsuite/gfortran.dg/cshift_bounds_1.f90
    trunk/gcc/testsuite/gfortran.dg/cshift_bounds_2.f90
    trunk/gcc/testsuite/gfortran.dg/cshift_bounds_3.f90
    trunk/gcc/testsuite/gfortran.dg/cshift_bounds_4.f90
    trunk/gcc/testsuite/gfortran.dg/eoshift_bounds_1.f90
    trunk/libgfortran/runtime/bounds.c
Modified:
    trunk/gcc/testsuite/ChangeLog
    trunk/gcc/testsuite/gfortran.dg/maxloc_bounds_4.f90
    trunk/gcc/testsuite/gfortran.dg/maxloc_bounds_5.f90
    trunk/gcc/testsuite/gfortran.dg/maxloc_bounds_7.f90
    trunk/libgfortran/ChangeLog
    trunk/libgfortran/Makefile.am
    trunk/libgfortran/Makefile.in
    trunk/libgfortran/generated/cshift1_16.c
    trunk/libgfortran/generated/cshift1_4.c
    trunk/libgfortran/generated/cshift1_8.c
    trunk/libgfortran/generated/eoshift1_16.c
    trunk/libgfortran/generated/eoshift1_4.c
    trunk/libgfortran/generated/eoshift1_8.c
    trunk/libgfortran/generated/eoshift3_16.c
    trunk/libgfortran/generated/eoshift3_4.c
    trunk/libgfortran/generated/eoshift3_8.c
    trunk/libgfortran/generated/maxloc0_16_i1.c
    trunk/libgfortran/generated/maxloc0_16_i16.c
    trunk/libgfortran/generated/maxloc0_16_i2.c
    trunk/libgfortran/generated/maxloc0_16_i4.c
    trunk/libgfortran/generated/maxloc0_16_i8.c
    trunk/libgfortran/generated/maxloc0_16_r10.c
    trunk/libgfortran/generated/maxloc0_16_r16.c
    trunk/libgfortran/generated/maxloc0_16_r4.c
    trunk/libgfortran/generated/maxloc0_16_r8.c
    trunk/libgfortran/generated/maxloc0_4_i1.c
    trunk/libgfortran/generated/maxloc0_4_i16.c
    trunk/libgfortran/generated/maxloc0_4_i2.c
    trunk/libgfortran/generated/maxloc0_4_i4.c
    trunk/libgfortran/generated/maxloc0_4_i8.c
    trunk/libgfortran/generated/maxloc0_4_r10.c
    trunk/libgfortran/generated/maxloc0_4_r16.c
    trunk/libgfortran/generated/maxloc0_4_r4.c
    trunk/libgfortran/generated/maxloc0_4_r8.c
    trunk/libgfortran/generated/maxloc0_8_i1.c
    trunk/libgfortran/generated/maxloc0_8_i16.c
    trunk/libgfortran/generated/maxloc0_8_i2.c
    trunk/libgfortran/generated/maxloc0_8_i4.c
    trunk/libgfortran/generated/maxloc0_8_i8.c
    trunk/libgfortran/generated/maxloc0_8_r10.c
    trunk/libgfortran/generated/maxloc0_8_r16.c
    trunk/libgfortran/generated/maxloc0_8_r4.c
    trunk/libgfortran/generated/maxloc0_8_r8.c
    trunk/libgfortran/generated/maxloc1_16_i1.c
    trunk/libgfortran/generated/maxloc1_16_i16.c
    trunk/libgfortran/generated/maxloc1_16_i2.c
    trunk/libgfortran/generated/maxloc1_16_i4.c
    trunk/libgfortran/generated/maxloc1_16_i8.c
    trunk/libgfortran/generated/maxloc1_16_r10.c
    trunk/libgfortran/generated/maxloc1_16_r16.c
    trunk/libgfortran/generated/maxloc1_16_r4.c
    trunk/libgfortran/generated/maxloc1_16_r8.c
    trunk/libgfortran/generated/maxloc1_4_i1.c
    trunk/libgfortran/generated/maxloc1_4_i16.c
    trunk/libgfortran/generated/maxloc1_4_i2.c
    trunk/libgfortran/generated/maxloc1_4_i4.c
    trunk/libgfortran/generated/maxloc1_4_i8.c
    trunk/libgfortran/generated/maxloc1_4_r10.c
    trunk/libgfortran/generated/maxloc1_4_r16.c
    trunk/libgfortran/generated/maxloc1_4_r4.c
    trunk/libgfortran/generated/maxloc1_4_r8.c
    trunk/libgfortran/generated/maxloc1_8_i1.c
    trunk/libgfortran/generated/maxloc1_8_i16.c
    trunk/libgfortran/generated/maxloc1_8_i2.c
    trunk/libgfortran/generated/maxloc1_8_i4.c
    trunk/libgfortran/generated/maxloc1_8_i8.c
    trunk/libgfortran/generated/maxloc1_8_r10.c
    trunk/libgfortran/generated/maxloc1_8_r16.c
    trunk/libgfortran/generated/maxloc1_8_r4.c
    trunk/libgfortran/generated/maxloc1_8_r8.c
    trunk/libgfortran/generated/maxval_i1.c
    trunk/libgfortran/generated/maxval_i16.c
    trunk/libgfortran/generated/maxval_i2.c
    trunk/libgfortran/generated/maxval_i4.c
    trunk/libgfortran/generated/maxval_i8.c
    trunk/libgfortran/generated/maxval_r10.c
    trunk/libgfortran/generated/maxval_r16.c
    trunk/libgfortran/generated/maxval_r4.c
    trunk/libgfortran/generated/maxval_r8.c
    trunk/libgfortran/generated/minloc0_16_i1.c
    trunk/libgfortran/generated/minloc0_16_i16.c
    trunk/libgfortran/generated/minloc0_16_i2.c
    trunk/libgfortran/generated/minloc0_16_i4.c
    trunk/libgfortran/generated/minloc0_16_i8.c
    trunk/libgfortran/generated/minloc0_16_r10.c
    trunk/libgfortran/generated/minloc0_16_r16.c
    trunk/libgfortran/generated/minloc0_16_r4.c
    trunk/libgfortran/generated/minloc0_16_r8.c
    trunk/libgfortran/generated/minloc0_4_i1.c
    trunk/libgfortran/generated/minloc0_4_i16.c
    trunk/libgfortran/generated/minloc0_4_i2.c
    trunk/libgfortran/generated/minloc0_4_i4.c
    trunk/libgfortran/generated/minloc0_4_i8.c
    trunk/libgfortran/generated/minloc0_4_r10.c
    trunk/libgfortran/generated/minloc0_4_r16.c
    trunk/libgfortran/generated/minloc0_4_r4.c
    trunk/libgfortran/generated/minloc0_4_r8.c
    trunk/libgfortran/generated/minloc0_8_i1.c
    trunk/libgfortran/generated/minloc0_8_i16.c
    trunk/libgfortran/generated/minloc0_8_i2.c
    trunk/libgfortran/generated/minloc0_8_i4.c
    trunk/libgfortran/generated/minloc0_8_i8.c
    trunk/libgfortran/generated/minloc0_8_r10.c
    trunk/libgfortran/generated/minloc0_8_r16.c
    trunk/libgfortran/generated/minloc0_8_r4.c
    trunk/libgfortran/generated/minloc0_8_r8.c
    trunk/libgfortran/generated/minloc1_16_i1.c
    trunk/libgfortran/generated/minloc1_16_i16.c
    trunk/libgfortran/generated/minloc1_16_i2.c
    trunk/libgfortran/generated/minloc1_16_i4.c
    trunk/libgfortran/generated/minloc1_16_i8.c
    trunk/libgfortran/generated/minloc1_16_r10.c
    trunk/libgfortran/generated/minloc1_16_r16.c
    trunk/libgfortran/generated/minloc1_16_r4.c
    trunk/libgfortran/generated/minloc1_16_r8.c
    trunk/libgfortran/generated/minloc1_4_i1.c
    trunk/libgfortran/generated/minloc1_4_i16.c
    trunk/libgfortran/generated/minloc1_4_i2.c
    trunk/libgfortran/generated/minloc1_4_i4.c
    trunk/libgfortran/generated/minloc1_4_i8.c
    trunk/libgfortran/generated/minloc1_4_r10.c
    trunk/libgfortran/generated/minloc1_4_r16.c
    trunk/libgfortran/generated/minloc1_4_r4.c
    trunk/libgfortran/generated/minloc1_4_r8.c
    trunk/libgfortran/generated/minloc1_8_i1.c
    trunk/libgfortran/generated/minloc1_8_i16.c
    trunk/libgfortran/generated/minloc1_8_i2.c
    trunk/libgfortran/generated/minloc1_8_i4.c
    trunk/libgfortran/generated/minloc1_8_i8.c
    trunk/libgfortran/generated/minloc1_8_r10.c
    trunk/libgfortran/generated/minloc1_8_r16.c
    trunk/libgfortran/generated/minloc1_8_r4.c
    trunk/libgfortran/generated/minloc1_8_r8.c
    trunk/libgfortran/generated/minval_i1.c
    trunk/libgfortran/generated/minval_i16.c
    trunk/libgfortran/generated/minval_i2.c
    trunk/libgfortran/generated/minval_i4.c
    trunk/libgfortran/generated/minval_i8.c
    trunk/libgfortran/generated/minval_r10.c
    trunk/libgfortran/generated/minval_r16.c
    trunk/libgfortran/generated/minval_r4.c
    trunk/libgfortran/generated/minval_r8.c
    trunk/libgfortran/generated/product_c10.c
    trunk/libgfortran/generated/product_c16.c
    trunk/libgfortran/generated/product_c4.c
    trunk/libgfortran/generated/product_c8.c
    trunk/libgfortran/generated/product_i1.c
    trunk/libgfortran/generated/product_i16.c
    trunk/libgfortran/generated/product_i2.c
    trunk/libgfortran/generated/product_i4.c
    trunk/libgfortran/generated/product_i8.c
    trunk/libgfortran/generated/product_r10.c
    trunk/libgfortran/generated/product_r16.c
    trunk/libgfortran/generated/product_r4.c
    trunk/libgfortran/generated/product_r8.c
    trunk/libgfortran/generated/sum_c10.c
    trunk/libgfortran/generated/sum_c16.c
    trunk/libgfortran/generated/sum_c4.c
    trunk/libgfortran/generated/sum_c8.c
    trunk/libgfortran/generated/sum_i1.c
    trunk/libgfortran/generated/sum_i16.c
    trunk/libgfortran/generated/sum_i2.c
    trunk/libgfortran/generated/sum_i4.c
    trunk/libgfortran/generated/sum_i8.c
    trunk/libgfortran/generated/sum_r10.c
    trunk/libgfortran/generated/sum_r16.c
    trunk/libgfortran/generated/sum_r4.c
    trunk/libgfortran/generated/sum_r8.c
    trunk/libgfortran/intrinsics/cshift0.c
    trunk/libgfortran/intrinsics/eoshift0.c
    trunk/libgfortran/intrinsics/eoshift2.c
    trunk/libgfortran/libgfortran.h
    trunk/libgfortran/m4/cshift1.m4
    trunk/libgfortran/m4/eoshift1.m4
    trunk/libgfortran/m4/eoshift3.m4
    trunk/libgfortran/m4/iforeach.m4
    trunk/libgfortran/m4/ifunction.m4


-- 


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


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

* [Bug fortran/36874] Add shape checks to cshift/eoshift
  2008-07-19 13:32 [Bug fortran/36874] New: Add shape checks to cshift/eoshift burnus at gcc dot gnu dot org
                   ` (10 preceding siblings ...)
  2009-07-19 15:08 ` tkoenig at gcc dot gnu dot org
@ 2009-07-25 12:27 ` tkoenig at gcc dot gnu dot org
  11 siblings, 0 replies; 13+ messages in thread
From: tkoenig at gcc dot gnu dot org @ 2009-07-25 12:27 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #11 from tkoenig at gcc dot gnu dot org  2009-07-25 12:27 -------
Fixed on trunk, backporting to 4.5 would be non-trivial
because trunk uses the array access macros, and 4.4 doesn't.

Closing.


-- 

tkoenig at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|ASSIGNED                    |RESOLVED
         Resolution|                            |FIXED


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


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

end of thread, other threads:[~2009-07-25 12:27 UTC | newest]

Thread overview: 13+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2008-07-19 13:32 [Bug fortran/36874] New: Add shape checks to cshift/eoshift burnus at gcc dot gnu dot org
2008-07-19 13:49 ` [Bug fortran/36874] " burnus at gcc dot gnu dot org
2008-07-28 10:49 ` tkoenig at gcc dot gnu dot org
2008-07-28 11:22 ` burnus at gcc dot gnu dot org
2009-01-19 20:42 ` dfranke at gcc dot gnu dot org
2009-01-24 18:39 ` dfranke at gcc dot gnu dot org
2009-01-24 19:41 ` burnus at gcc dot gnu dot org
2009-04-05 20:11 ` dfranke at gcc dot gnu dot org
2009-06-07 13:46 ` burnus at gcc dot gnu dot org
2009-06-07 13:59 ` burnus at gcc dot gnu dot org
2009-06-07 14:41 ` tkoenig at gcc dot gnu dot org
2009-07-19 15:08 ` tkoenig at gcc dot gnu dot org
2009-07-25 12:27 ` tkoenig 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).