------- Comment #3 from rguenth at gcc dot gnu dot org  2008-03-17 14:05 -------
Hm, with gcc 4.2 I get

gcc-4.2 -c t.c -O2 -Wall
t.c: In function 'main':
t.c:5: warning: array subscript is below array bounds
t.c:7: warning: array subscript is above array bounds
t.c:8: warning: array subscript is above array bounds
t.c:9: warning: array subscript is above array bounds

(the warning in line 11 is missing as the constant is
propagated and the load from a[15] CSEd - this is a very hard
to fix implementation limit.  You'd fix the case in line 9
and then the issue in line 11 would pop up.)

with 4.3 I indeed see

gcc-4.3 -c t.c -O2 -Wall

(nothing)

because all invalid stores are deleted from the code and the only
used value (a[15]) is propagated from the store a[15] = 0 and thus
replaced by the constant 0.  Again a hard to fix implementation
issue - after all these invalid stores/loads invoke undefined
behavior which is why we just "optimized" them.

IMHO for these very simple cases the frontend should already warn
(even at -O0 and -O1) and not rely on the code surviving until VRP.
(The issue is that we in this way would also warn in dead code regions,
which may be a problem on its own).

Note this is not accepts-invalid as it is only undefined at runtime.


-- 

rguenth at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |mueller at gcc dot gnu dot
                   |                            |org, rguenth at gcc dot gnu
                   |                            |dot org
           Severity|major                       |enhancement
             Status|UNCONFIRMED                 |NEW
     Ever Confirmed|0                           |1
           Keywords|accepts-invalid             |
   Last reconfirmed|0000-00-00 00:00:00         |2008-03-17 14:05:57
               date|                            |


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

Reply via email to