public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug libfortran/34670]  New: bounds checking for array intrinsics
@ 2008-01-04 11:14 tkoenig at gcc dot gnu dot org
  2008-01-05  4:05 ` [Bug libfortran/34670] " jvdelisle at gcc dot gnu dot org
                   ` (18 more replies)
  0 siblings, 19 replies; 20+ messages in thread
From: tkoenig at gcc dot gnu dot org @ 2008-01-04 11:14 UTC (permalink / raw)
  To: gcc-bugs

None of the array intrinsics in generated/* currently
perform bounds checking.  The runtime flag exists,
but is currently mostly unused.


-- 
           Summary: bounds checking for array intrinsics
           Product: gcc
           Version: 4.3.0
            Status: UNCONFIRMED
          Keywords: diagnostic
          Severity: normal
          Priority: P3
         Component: libfortran
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: tkoenig at gcc dot gnu dot org
OtherBugsDependingO 27766
             nThis:


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


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

* [Bug libfortran/34670] bounds checking for array intrinsics
  2008-01-04 11:14 [Bug libfortran/34670] New: bounds checking for array intrinsics tkoenig at gcc dot gnu dot org
@ 2008-01-05  4:05 ` jvdelisle at gcc dot gnu dot org
  2008-01-05 12:11 ` tkoenig at netcologne dot de
                   ` (17 subsequent siblings)
  18 siblings, 0 replies; 20+ messages in thread
From: jvdelisle at gcc dot gnu dot org @ 2008-01-05  4:05 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #1 from jvdelisle at gcc dot gnu dot org  2008-01-05 00:01 -------
Do we want the overhead of bounds checking at run time on all these intrinsics?
 Is there a way to do it without the overhead?


-- 


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


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

* [Bug libfortran/34670] bounds checking for array intrinsics
  2008-01-04 11:14 [Bug libfortran/34670] New: bounds checking for array intrinsics tkoenig at gcc dot gnu dot org
  2008-01-05  4:05 ` [Bug libfortran/34670] " jvdelisle at gcc dot gnu dot org
@ 2008-01-05 12:11 ` tkoenig at netcologne dot de
  2008-01-05 16:18 ` tkoenig at gcc dot gnu dot org
                   ` (16 subsequent siblings)
  18 siblings, 0 replies; 20+ messages in thread
From: tkoenig at netcologne dot de @ 2008-01-05 12:11 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #2 from tkoenig at netcologne dot de  2008-01-05 11:48 -------
Subject: Re:  bounds checking for array intrinsics


Hi Jerry,

> Do we want the overhead of bounds checking at run time on all these intrinsics?

In the case of no bounds checking, it's a single if statement.

>  Is there a way to do it without the overhead?

We could duplicate every intrinsic array function, one version with
bounds checking and one without, then call the appropriate function.


-- 


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


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

* [Bug libfortran/34670] bounds checking for array intrinsics
  2008-01-04 11:14 [Bug libfortran/34670] New: bounds checking for array intrinsics tkoenig at gcc dot gnu dot org
  2008-01-05  4:05 ` [Bug libfortran/34670] " jvdelisle at gcc dot gnu dot org
  2008-01-05 12:11 ` tkoenig at netcologne dot de
@ 2008-01-05 16:18 ` tkoenig at gcc dot gnu dot org
  2008-01-06 21:51 ` tkoenig at gcc dot gnu dot org
                   ` (15 subsequent siblings)
  18 siblings, 0 replies; 20+ messages in thread
From: tkoenig at gcc dot gnu dot org @ 2008-01-05 16:18 UTC (permalink / raw)
  To: gcc-bugs



-- 

tkoenig at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
         AssignedTo|unassigned at gcc dot gnu   |tkoenig at gcc dot gnu dot
                   |dot org                     |org
             Status|UNCONFIRMED                 |ASSIGNED
     Ever Confirmed|0                           |1
   Last reconfirmed|0000-00-00 00:00:00         |2008-01-05 15:25:19
               date|                            |


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


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

* [Bug libfortran/34670] bounds checking for array intrinsics
  2008-01-04 11:14 [Bug libfortran/34670] New: bounds checking for array intrinsics tkoenig at gcc dot gnu dot org
                   ` (2 preceding siblings ...)
  2008-01-05 16:18 ` tkoenig at gcc dot gnu dot org
@ 2008-01-06 21:51 ` tkoenig at gcc dot gnu dot org
  2008-01-06 21:55 ` tkoenig at gcc dot gnu dot org
                   ` (14 subsequent siblings)
  18 siblings, 0 replies; 20+ messages in thread
From: tkoenig at gcc dot gnu dot org @ 2008-01-06 21:51 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #3 from tkoenig at gcc dot gnu dot org  2008-01-06 21:44 -------
Created an attachment (id=14888)
 --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=14888&action=view)
partial implementation

This is an implementation for the array intrinsics, but I'm having
trouble with writing test cases.  See next attachment.


-- 


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


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

* [Bug libfortran/34670] bounds checking for array intrinsics
  2008-01-04 11:14 [Bug libfortran/34670] New: bounds checking for array intrinsics tkoenig at gcc dot gnu dot org
                   ` (3 preceding siblings ...)
  2008-01-06 21:51 ` tkoenig at gcc dot gnu dot org
@ 2008-01-06 21:55 ` tkoenig at gcc dot gnu dot org
  2008-01-11 21:19 ` tkoenig at gcc dot gnu dot org
                   ` (13 subsequent siblings)
  18 siblings, 0 replies; 20+ messages in thread
From: tkoenig at gcc dot gnu dot org @ 2008-01-06 21:55 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #4 from tkoenig at gcc dot gnu dot org  2008-01-06 21:46 -------
Created an attachment (id=14889)
 --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=14889&action=view)
Test case that doesn't work

This test case fails with my patch, although the "dg-shouldfail" directive
should take care of that.

Does anybody have any idea what I could do here?  If I can't get this
to work, I'll submit the patch without test cases.


-- 


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


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

* [Bug libfortran/34670] bounds checking for array intrinsics
  2008-01-04 11:14 [Bug libfortran/34670] New: bounds checking for array intrinsics tkoenig at gcc dot gnu dot org
                   ` (4 preceding siblings ...)
  2008-01-06 21:55 ` tkoenig at gcc dot gnu dot org
@ 2008-01-11 21:19 ` tkoenig at gcc dot gnu dot org
  2008-01-26 20:10 ` tkoenig at gcc dot gnu dot org
                   ` (12 subsequent siblings)
  18 siblings, 0 replies; 20+ messages in thread
From: tkoenig at gcc dot gnu dot org @ 2008-01-11 21:19 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #5 from tkoenig at gcc dot gnu dot org  2008-01-11 20:21 -------
Subject: Bug 34670

Author: tkoenig
Date: Fri Jan 11 20:21:05 2008
New Revision: 131473

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=131473
Log:
2008-01-11  Thomas Koenig  <tkoenig@gcc.gnu.org>

        PR libfortran/34670
        * m4/iparm.m4 (upcase):  New macro (copied from the m4 manual).
        (u_name):  New macro for the upper case name of the intrinsic.
        * m4/iforeach.m4 (name`'rtype_qual`_'atype_code):  Add
        bounds checking and rank check, depending on
        compile_options.bounds_check.
        (`m'name`'rtype_qual`_'atype_code):  Likewise.
        (`s'name`'rtype_qual`_'atype_code):  Likewise.
        * m4/ifunction.m4 (name`'rtype_qual`_'atype_code):  Add
        bounds checking and rank check, depending on
        compile_options.bounds_check.
        (`m'name`'rtype_qual`_'atype_code):  Likewise.
        (`s'name`'rtype_qual`_'atype_code):  Likewise.
        * generated/all_l16.c: Regenerated.
        * generated/all_l4.c: Regenerated.
        * generated/all_l8.c: Regenerated.
        * generated/any_l16.c: Regenerated.
        * generated/any_l4.c: Regenerated.
        * generated/any_l8.c: Regenerated.
        * generated/count_16_l16.c: Regenerated.
        * generated/count_16_l4.c: Regenerated.
        * generated/count_16_l8.c: Regenerated.
        * generated/count_4_l16.c: Regenerated.
        * generated/count_4_l4.c: Regenerated.
        * generated/count_4_l8.c: Regenerated.
        * generated/count_8_l16.c: Regenerated.
        * generated/count_8_l4.c: Regenerated.
        * generated/count_8_l8.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.

2008-01-11  Thomas Koenig  <tkoenig@gcc.gnu.org>

        PR libfortran/34670
        * all_bounds_1.f90: New test case.
        * maxloc_bounds_1.f90: New test case.
        * maxloc_bounds_2.f90: New test case.
        * maxloc_bounds_3.f90: New test case.
        * maxloc_bounds_4.f90: New test case.
        * maxloc_bounds_5.f90: New test case.
        * maxloc_bounds_6.f90: New test case.
        * maxloc_bounds_7.f90: New test case.
        * maxloc_bounds_8.f90: New test case.


Added:
    trunk/gcc/testsuite/gfortran.dg/all_bounds_1.f90
    trunk/gcc/testsuite/gfortran.dg/maxloc_bounds_1.f90
    trunk/gcc/testsuite/gfortran.dg/maxloc_bounds_2.f90
    trunk/gcc/testsuite/gfortran.dg/maxloc_bounds_3.f90
    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_6.f90
    trunk/gcc/testsuite/gfortran.dg/maxloc_bounds_7.f90
    trunk/gcc/testsuite/gfortran.dg/maxloc_bounds_8.f90
Modified:
    trunk/gcc/testsuite/ChangeLog
    trunk/libgfortran/ChangeLog
    trunk/libgfortran/generated/all_l16.c
    trunk/libgfortran/generated/all_l4.c
    trunk/libgfortran/generated/all_l8.c
    trunk/libgfortran/generated/any_l16.c
    trunk/libgfortran/generated/any_l4.c
    trunk/libgfortran/generated/any_l8.c
    trunk/libgfortran/generated/count_16_l16.c
    trunk/libgfortran/generated/count_16_l4.c
    trunk/libgfortran/generated/count_16_l8.c
    trunk/libgfortran/generated/count_4_l16.c
    trunk/libgfortran/generated/count_4_l4.c
    trunk/libgfortran/generated/count_4_l8.c
    trunk/libgfortran/generated/count_8_l16.c
    trunk/libgfortran/generated/count_8_l4.c
    trunk/libgfortran/generated/count_8_l8.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/m4/iforeach.m4
    trunk/libgfortran/m4/ifunction.m4
    trunk/libgfortran/m4/iparm.m4


-- 


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


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

* [Bug libfortran/34670] bounds checking for array intrinsics
  2008-01-04 11:14 [Bug libfortran/34670] New: bounds checking for array intrinsics tkoenig at gcc dot gnu dot org
                   ` (5 preceding siblings ...)
  2008-01-11 21:19 ` tkoenig at gcc dot gnu dot org
@ 2008-01-26 20:10 ` tkoenig at gcc dot gnu dot org
  2008-07-07 19:45 ` tkoenig at gcc dot gnu dot org
                   ` (11 subsequent siblings)
  18 siblings, 0 replies; 20+ messages in thread
From: tkoenig at gcc dot gnu dot org @ 2008-01-26 20:10 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #6 from tkoenig at gcc dot gnu dot org  2008-01-26 19:34 -------
Files still missing, from generated/*:

cshift1_*.c
eoshift1_*.c
eoshift3_*.c
matmul_*.c
reshape_*.c
shape_*.c
transpose_*.c

>From intrinsic/*.c:

cshift0.c
eoshift0.c
eoshift2.c
reshape_generic.c
transpose_generic.c
unpack_generic.c

Nice project once 4.4 is underway :-)


-- 

tkoenig at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|patch                       |


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


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

* [Bug libfortran/34670] bounds checking for array intrinsics
  2008-01-04 11:14 [Bug libfortran/34670] New: bounds checking for array intrinsics tkoenig at gcc dot gnu dot org
                   ` (6 preceding siblings ...)
  2008-01-26 20:10 ` tkoenig at gcc dot gnu dot org
@ 2008-07-07 19:45 ` tkoenig at gcc dot gnu dot org
  2008-10-15 16:30 ` tkoenig at gcc dot gnu dot org
                   ` (10 subsequent siblings)
  18 siblings, 0 replies; 20+ messages in thread
From: tkoenig at gcc dot gnu dot org @ 2008-07-07 19:45 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #7 from tkoenig at gcc dot gnu dot org  2008-07-07 19:44 -------
Subject: Bug 34670

Author: tkoenig
Date: Mon Jul  7 19:43:33 2008
New Revision: 137594

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

        PR fortran/36341
        PR fortran/34670
        * m4/matmul.m4:  Add bounds checking.
        * m4/matmull.m4:  Likewise.
        * generated/matmul_c10.c: Regenerated.
        * generated/matmul_c16.c: Regenerated.
        * generated/matmul_c4.c: Regenerated.
        * generated/matmul_c8.c: Regenerated.
        * generated/matmul_i1.c: Regenerated.
        * generated/matmul_i16.c: Regenerated.
        * generated/matmul_i2.c: Regenerated.
        * generated/matmul_i4.c: Regenerated.
        * generated/matmul_i8.c: Regenerated.
        * generated/matmul_l16.c: Regenerated.
        * generated/matmul_l4.c: Regenerated.
        * generated/matmul_l8.c: Regenerated.
        * generated/matmul_r10.c: Regenerated.
        * generated/matmul_r16.c: Regenerated.
        * generated/matmul_r4.c: Regenerated.
        * generated/matmul_r8.c: Regenerated.

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

        PR fortran/36341
        PR fortran/34670
        * gfortran.dg/matmul_bounds_2.f90:  New test.
        * gfortran.dg/matmul_bounds_3.f90:  New test.
        * gfortran.dg/matmul_bounds_4.f90:  New test.
        * gfortran.dg/matmul_bounds_5.f90:  New test.


Added:
    trunk/gcc/testsuite/gfortran.dg/matmul_bounds_2.f90
    trunk/gcc/testsuite/gfortran.dg/matmul_bounds_3.f90
    trunk/gcc/testsuite/gfortran.dg/matmul_bounds_4.f90
    trunk/gcc/testsuite/gfortran.dg/matmul_bounds_5.f90
Modified:
    trunk/gcc/testsuite/ChangeLog
    trunk/libgfortran/ChangeLog
    trunk/libgfortran/generated/matmul_c10.c
    trunk/libgfortran/generated/matmul_c16.c
    trunk/libgfortran/generated/matmul_c4.c
    trunk/libgfortran/generated/matmul_c8.c
    trunk/libgfortran/generated/matmul_i1.c
    trunk/libgfortran/generated/matmul_i16.c
    trunk/libgfortran/generated/matmul_i2.c
    trunk/libgfortran/generated/matmul_i4.c
    trunk/libgfortran/generated/matmul_i8.c
    trunk/libgfortran/generated/matmul_l16.c
    trunk/libgfortran/generated/matmul_l4.c
    trunk/libgfortran/generated/matmul_l8.c
    trunk/libgfortran/generated/matmul_r10.c
    trunk/libgfortran/generated/matmul_r16.c
    trunk/libgfortran/generated/matmul_r4.c
    trunk/libgfortran/generated/matmul_r8.c
    trunk/libgfortran/m4/matmul.m4
    trunk/libgfortran/m4/matmull.m4


-- 


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


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

* [Bug libfortran/34670] bounds checking for array intrinsics
  2008-01-04 11:14 [Bug libfortran/34670] New: bounds checking for array intrinsics tkoenig at gcc dot gnu dot org
                   ` (7 preceding siblings ...)
  2008-07-07 19:45 ` tkoenig at gcc dot gnu dot org
@ 2008-10-15 16:30 ` tkoenig at gcc dot gnu dot org
  2008-10-15 16:32 ` tkoenig at gcc dot gnu dot org
                   ` (9 subsequent siblings)
  18 siblings, 0 replies; 20+ messages in thread
From: tkoenig at gcc dot gnu dot org @ 2008-10-15 16:30 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #8 from tkoenig at gcc dot gnu dot org  2008-10-15 16:29 -------
Subject: Bug 34670

Author: tkoenig
Date: Wed Oct 15 16:27:58 2008
New Revision: 141144

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=141144
Log:
2008-10-15  Thomas Koenig  <tkoenig@gcc.gnu.org>

        PR libfortran/34670
        * intrinsics/reshape_generic.c:  Add bounds checking.
        * 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.
        * generated/spread_r4.c: Regenerated.

2008-10-15  Thomas Koenig  <tkoenig@gcc.gnu.org>

        PR libfortran/34670
        * gfortran.dg/reshape_3.f90:  New test.
        * gfortran.dg/reshape_4.f90:  New test.
        * gfortran.dg/reshape_order_1.f90:  Use correct shape.
        * gfortran.dg/reshape_order_2.f90:  Likewise.
        * gfortran.dg/reshape_order_3.f90:  Likewise.
        * gfortran.dg/reshape_order_4.f90:  Likewise.


Modified:
    trunk/gcc/testsuite/ChangeLog
    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
    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/generated/spread_r4.c
    trunk/libgfortran/intrinsics/reshape_generic.c
    trunk/libgfortran/m4/reshape.m4


-- 


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


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

* [Bug libfortran/34670] bounds checking for array intrinsics
  2008-01-04 11:14 [Bug libfortran/34670] New: bounds checking for array intrinsics tkoenig at gcc dot gnu dot org
                   ` (8 preceding siblings ...)
  2008-10-15 16:30 ` tkoenig at gcc dot gnu dot org
@ 2008-10-15 16:32 ` tkoenig at gcc dot gnu dot org
  2008-10-16 10:19 ` tkoenig at gcc dot gnu dot org
                   ` (8 subsequent siblings)
  18 siblings, 0 replies; 20+ messages in thread
From: tkoenig at gcc dot gnu dot org @ 2008-10-15 16:32 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #9 from tkoenig at gcc dot gnu dot org  2008-10-15 16:31 -------
Matmul and spread are also done.

Still a few to go...


-- 


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


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

* [Bug libfortran/34670] bounds checking for array intrinsics
  2008-01-04 11:14 [Bug libfortran/34670] New: bounds checking for array intrinsics tkoenig at gcc dot gnu dot org
                   ` (9 preceding siblings ...)
  2008-10-15 16:32 ` tkoenig at gcc dot gnu dot org
@ 2008-10-16 10:19 ` tkoenig at gcc dot gnu dot org
  2008-10-21 20:15 ` tkoenig at gcc dot gnu dot org
                   ` (7 subsequent siblings)
  18 siblings, 0 replies; 20+ messages in thread
From: tkoenig at gcc dot gnu dot org @ 2008-10-16 10:19 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #10 from tkoenig at gcc dot gnu dot org  2008-10-16 10:18 -------
Subject: Bug 34670

Author: tkoenig
Date: Thu Oct 16 10:16:38 2008
New Revision: 141167

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=141167
Log:
2008-10-16  Thomas Koenig  <tkoenig@gcc.gnu.org>

        PR libfortran/34670
        * generated/spread_r4.c: Regenerated.


Modified:
    trunk/libgfortran/ChangeLog
    trunk/libgfortran/generated/spread_r4.c


-- 


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


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

* [Bug libfortran/34670] bounds checking for array intrinsics
  2008-01-04 11:14 [Bug libfortran/34670] New: bounds checking for array intrinsics tkoenig at gcc dot gnu dot org
                   ` (10 preceding siblings ...)
  2008-10-16 10:19 ` tkoenig at gcc dot gnu dot org
@ 2008-10-21 20:15 ` tkoenig at gcc dot gnu dot org
  2009-07-19 15:07 ` tkoenig at gcc dot gnu dot org
                   ` (6 subsequent siblings)
  18 siblings, 0 replies; 20+ messages in thread
From: tkoenig at gcc dot gnu dot org @ 2008-10-21 20:15 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #11 from tkoenig at gcc dot gnu dot org  2008-10-21 20:14 -------
Subject: Bug 34670

Author: tkoenig
Date: Tue Oct 21 20:12:52 2008
New Revision: 141276

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=141276
Log:
2008-10-21  Thomas Koenig  <tkoenig@gcc.gnu.org>

        PR libfortran/34670
        * intrinsics/transpose_generic.c:  Implement bounds checking.
        * m4/transpose.m4:  Likewise.
        * generated/transpose_c8.c: Regenerated.
        * generated/transpose_c16.c: Regenerated.
        * generated/transpose_r10.c: Regenerated.
        * generated/transpose_i8.c: Regenerated.
        * generated/transpose_c10.c: Regenerated.
        * generated/transpose_r4.c: Regenerated.
        * generated/transpose_c4.c: Regenerated.
        * generated/transpose_i16.c: Regenerated.
        * generated/transpose_i4.c: Regenerated.
        * generated/transpose_r8.c: Regenerated.
        * generated/transpose_r16.c: Regenerated.

2008-10-21  Thomas Koenig  <tkoenig@gcc.gnu.org>

        PR libfortran/34670
        * gfortran.dg/transpose_2.f90:  New test.


Added:
    trunk/gcc/testsuite/gfortran.dg/transpose_2.f90
Modified:
    trunk/gcc/testsuite/ChangeLog
    trunk/libgfortran/ChangeLog
    trunk/libgfortran/generated/transpose_c10.c
    trunk/libgfortran/generated/transpose_c16.c
    trunk/libgfortran/generated/transpose_c4.c
    trunk/libgfortran/generated/transpose_c8.c
    trunk/libgfortran/generated/transpose_i16.c
    trunk/libgfortran/generated/transpose_i4.c
    trunk/libgfortran/generated/transpose_i8.c
    trunk/libgfortran/generated/transpose_r10.c
    trunk/libgfortran/generated/transpose_r16.c
    trunk/libgfortran/generated/transpose_r4.c
    trunk/libgfortran/generated/transpose_r8.c
    trunk/libgfortran/intrinsics/transpose_generic.c
    trunk/libgfortran/m4/transpose.m4


-- 


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


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

* [Bug libfortran/34670] bounds checking for array intrinsics
  2008-01-04 11:14 [Bug libfortran/34670] New: bounds checking for array intrinsics tkoenig at gcc dot gnu dot org
                   ` (11 preceding siblings ...)
  2008-10-21 20:15 ` tkoenig at gcc dot gnu dot org
@ 2009-07-19 15:07 ` tkoenig at gcc dot gnu dot org
  2009-07-28  9:04 ` tkoenig at gcc dot gnu dot org
                   ` (5 subsequent siblings)
  18 siblings, 0 replies; 20+ messages in thread
From: tkoenig at gcc dot gnu dot org @ 2009-07-19 15:07 UTC (permalink / raw)
  To: gcc-bugs



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

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


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

* [Bug libfortran/34670] bounds checking for array intrinsics
  2008-01-04 11:14 [Bug libfortran/34670] New: bounds checking for array intrinsics tkoenig at gcc dot gnu dot org
                   ` (12 preceding siblings ...)
  2009-07-19 15:07 ` tkoenig at gcc dot gnu dot org
@ 2009-07-28  9:04 ` tkoenig at gcc dot gnu dot org
  2009-07-28  9:57 ` burnus at gcc dot gnu dot org
                   ` (4 subsequent siblings)
  18 siblings, 0 replies; 20+ messages in thread
From: tkoenig at gcc dot gnu dot org @ 2009-07-28  9:04 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #13 from tkoenig at gcc dot gnu dot org  2009-07-28 09:04 -------
Still missing in intrinsics (at least as far as
grep -L bounds `grep -l gfc_array *.c` tells me):

associated.c
date_and_time.c
dtime.c
etime.c
iso_c_binding.c
move_alloc.c
random.c
stat.c
unpack_generic.c

Missing in m4:

unpack.m4

I'll try to do those during the next two weeks or so, when I'll have no
Internet connection *gasp*


-- 


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


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

* [Bug libfortran/34670] bounds checking for array intrinsics
  2008-01-04 11:14 [Bug libfortran/34670] New: bounds checking for array intrinsics tkoenig at gcc dot gnu dot org
                   ` (13 preceding siblings ...)
  2009-07-28  9:04 ` tkoenig at gcc dot gnu dot org
@ 2009-07-28  9:57 ` burnus at gcc dot gnu dot org
  2009-08-25 17:05 ` tkoenig at gcc dot gnu dot org
                   ` (3 subsequent siblings)
  18 siblings, 0 replies; 20+ messages in thread
From: burnus at gcc dot gnu dot org @ 2009-07-28  9:57 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #14 from burnus at gcc dot gnu dot org  2009-07-28 09:57 -------
(In reply to comment #13)
> Still missing in intrinsics (at least as far as
For those which have one-dimensional arrays, one should consider adding the
checks in trans*.c as this is faster for the non -fcheck=bounds case. At least
functions such as random and *time* sound to be such. (And maybe the standard
allows them to be shorter.)


-- 


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


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

* [Bug libfortran/34670] bounds checking for array intrinsics
  2008-01-04 11:14 [Bug libfortran/34670] New: bounds checking for array intrinsics tkoenig at gcc dot gnu dot org
                   ` (14 preceding siblings ...)
  2009-07-28  9:57 ` burnus at gcc dot gnu dot org
@ 2009-08-25 17:05 ` tkoenig at gcc dot gnu dot org
  2010-06-03 21:46 ` tkoenig at gcc dot gnu dot org
                   ` (2 subsequent siblings)
  18 siblings, 0 replies; 20+ messages in thread
From: tkoenig at gcc dot gnu dot org @ 2009-08-25 17:05 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #15 from tkoenig at gcc dot gnu dot org  2009-08-25 17:05 -------
Subject: Bug 34670

Author: tkoenig
Date: Tue Aug 25 17:05:10 2009
New Revision: 151085

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

        PR libfortran/34670
        * runtime/bounds.c (count_0):  New function.
        * intrinsics/unpack_generic (unpack_bounds):  New function.
        (unpack_internal):  Remove zero stride checks.
        (unpack1):  Use unpack_bounds.
        (unpack1_char):  Likeweise.
        (unpack1_char4):  Likewise
        (unpack0):  Likewise.
        (unpack0_char):  Likewise.
        (unpack0_char4):  Likewise.

2009-08-25  Thomas Koenig  <tkoenig@gcc.gnu.org>

        PR libfortran/34670
        * gfortran.dg/unpack_bounds_1.f90:  New test.
        * gfortran.dg/unpack_bounds_2.f90:  New test.
        * gfortran.dg/unpack_bounds_3.f90:  New test.



Added:
    trunk/gcc/testsuite/gfortran.dg/unpack_bounds_1.f90   (with props)
    trunk/gcc/testsuite/gfortran.dg/unpack_bounds_2.f90   (with props)
    trunk/gcc/testsuite/gfortran.dg/unpack_bounds_3.f90   (with props)
Modified:
    trunk/gcc/testsuite/ChangeLog
    trunk/libgfortran/ChangeLog
    trunk/libgfortran/intrinsics/unpack_generic.c
    trunk/libgfortran/libgfortran.h
    trunk/libgfortran/runtime/bounds.c

Propchange: trunk/gcc/testsuite/gfortran.dg/unpack_bounds_1.f90
            ('svn:executable' added)

Propchange: trunk/gcc/testsuite/gfortran.dg/unpack_bounds_2.f90
            ('svn:executable' added)

Propchange: trunk/gcc/testsuite/gfortran.dg/unpack_bounds_3.f90
            ('svn:executable' added)


-- 


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


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

* [Bug libfortran/34670] bounds checking for array intrinsics
  2008-01-04 11:14 [Bug libfortran/34670] New: bounds checking for array intrinsics tkoenig at gcc dot gnu dot org
                   ` (15 preceding siblings ...)
  2009-08-25 17:05 ` tkoenig at gcc dot gnu dot org
@ 2010-06-03 21:46 ` tkoenig at gcc dot gnu dot org
  2010-06-04  6:50 ` tkoenig at gcc dot gnu dot org
  2010-06-04  6:51 ` tkoenig at gcc dot gnu dot org
  18 siblings, 0 replies; 20+ messages in thread
From: tkoenig at gcc dot gnu dot org @ 2010-06-03 21:46 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #16 from tkoenig at gcc dot gnu dot org  2010-06-03 21:45 -------
Looking at what is actually in there...

> associated.c

This doesn't have any bounds issues.

> date_and_time.c

I'll replace an assert with a runtime_error.

> dtime.c

No changes needed.

> etime.c

No changes needed.
> iso_c_binding.c

No changes needed.

> move_alloc.c

No changes needed.

> random.c

Already has runtime_error.

> stat.c

Already has runtime_error.

> unpack_generic.c
> 
> Missing in m4:
> 
> unpack.m4

Done in the previous patch.


-- 


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


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

* [Bug libfortran/34670] bounds checking for array intrinsics
  2008-01-04 11:14 [Bug libfortran/34670] New: bounds checking for array intrinsics tkoenig at gcc dot gnu dot org
                   ` (16 preceding siblings ...)
  2010-06-03 21:46 ` tkoenig at gcc dot gnu dot org
@ 2010-06-04  6:50 ` tkoenig at gcc dot gnu dot org
  2010-06-04  6:51 ` tkoenig at gcc dot gnu dot org
  18 siblings, 0 replies; 20+ messages in thread
From: tkoenig at gcc dot gnu dot org @ 2010-06-04  6:50 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #17 from tkoenig at gcc dot gnu dot org  2010-06-04 06:50 -------
Subject: Bug 34670

Author: tkoenig
Date: Fri Jun  4 06:50:11 2010
New Revision: 160253

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=160253
Log:
2010-06-04  Thomas Koenig  <tkoenig@gcc.gnu.org>

        PR libfortran/34670
        * intrinsics/date_and_time.c:  Replace assert with runtime_error
        when VALUE is too small.


Modified:
    trunk/libgfortran/ChangeLog
    trunk/libgfortran/intrinsics/date_and_time.c


-- 


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


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

* [Bug libfortran/34670] bounds checking for array intrinsics
  2008-01-04 11:14 [Bug libfortran/34670] New: bounds checking for array intrinsics tkoenig at gcc dot gnu dot org
                   ` (17 preceding siblings ...)
  2010-06-04  6:50 ` tkoenig at gcc dot gnu dot org
@ 2010-06-04  6:51 ` tkoenig at gcc dot gnu dot org
  18 siblings, 0 replies; 20+ messages in thread
From: tkoenig at gcc dot gnu dot org @ 2010-06-04  6:51 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #18 from tkoenig at gcc dot gnu dot org  2010-06-04 06:51 -------
Fixed (finally).

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


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

end of thread, other threads:[~2010-06-04  6:51 UTC | newest]

Thread overview: 20+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2008-01-04 11:14 [Bug libfortran/34670] New: bounds checking for array intrinsics tkoenig at gcc dot gnu dot org
2008-01-05  4:05 ` [Bug libfortran/34670] " jvdelisle at gcc dot gnu dot org
2008-01-05 12:11 ` tkoenig at netcologne dot de
2008-01-05 16:18 ` tkoenig at gcc dot gnu dot org
2008-01-06 21:51 ` tkoenig at gcc dot gnu dot org
2008-01-06 21:55 ` tkoenig at gcc dot gnu dot org
2008-01-11 21:19 ` tkoenig at gcc dot gnu dot org
2008-01-26 20:10 ` tkoenig at gcc dot gnu dot org
2008-07-07 19:45 ` tkoenig at gcc dot gnu dot org
2008-10-15 16:30 ` tkoenig at gcc dot gnu dot org
2008-10-15 16:32 ` tkoenig at gcc dot gnu dot org
2008-10-16 10:19 ` tkoenig at gcc dot gnu dot org
2008-10-21 20:15 ` tkoenig at gcc dot gnu dot org
2009-07-19 15:07 ` tkoenig at gcc dot gnu dot org
2009-07-28  9:04 ` tkoenig at gcc dot gnu dot org
2009-07-28  9:57 ` burnus at gcc dot gnu dot org
2009-08-25 17:05 ` tkoenig at gcc dot gnu dot org
2010-06-03 21:46 ` tkoenig at gcc dot gnu dot org
2010-06-04  6:50 ` tkoenig at gcc dot gnu dot org
2010-06-04  6:51 ` 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).