public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug c/48666] New: [4.5.2/4.6 regression] -Warray-bounds doesn't trigger anymore for simple case
@ 2011-04-18 13:41 franz.sirl-kernel at lauterbach dot com
  2011-06-12 12:38 ` [Bug c/48666] " rguenth at gcc dot gnu.org
                   ` (6 more replies)
  0 siblings, 7 replies; 8+ messages in thread
From: franz.sirl-kernel at lauterbach dot com @ 2011-04-18 13:41 UTC (permalink / raw)
  To: gcc-bugs

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

           Summary: [4.5.2/4.6 regression] -Warray-bounds doesn't trigger
                    anymore for simple case
           Product: gcc
           Version: 4.6.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c
        AssignedTo: unassigned@gcc.gnu.org
        ReportedBy: franz.sirl-kernel@lauterbach.com


Created attachment 24031
  --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=24031
testcase

A simple testcase like

typedef union
{
          int val32;
          int val32Tab2[4];
          int val32Tab3[3];
          long long val64;
} SrcVal;

void f(SrcVal *x)
{
  x->val32Tab3[4] = 42;
}

doesn't warn anymore when compiled with -O2 -Warray-bounds.

Tested OK (x86_64):
gcc-4.3 (SLES11): gcc (SUSE Linux) 4.3.4 [gcc-4_3-branch revision 152973]
gcc-4.5.1 (FC14): gcc (GCC) 4.5.1 20100924 (Red Hat 4.5.1-4)

Tested NOT OK (x86_64):
gcc-4.5.2 (OBS): gcc-4.5 (SUSE Linux) 4.5.2 20110302 [gcc-4_5-branch revision
170616]
gcc-4.6.0 (OBS): gcc-4.6 (SUSE Linux) 4.6.0 20110314 [gcc-4_6-branch revision
170941]
gcc-4.6.0 (OBS): gcc-4.6 (SUSE Linux) 4.6.0 20110415 [gcc-4_6-branch revision
172496]


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

* [Bug c/48666] [4.5.2/4.6 regression] -Warray-bounds doesn't trigger anymore for simple case
  2011-04-18 13:41 [Bug c/48666] New: [4.5.2/4.6 regression] -Warray-bounds doesn't trigger anymore for simple case franz.sirl-kernel at lauterbach dot com
@ 2011-06-12 12:38 ` rguenth at gcc dot gnu.org
  2011-06-12 13:09 ` [Bug middle-end/48666] [4.6/4.7 Regression] " rguenth at gcc dot gnu.org
                   ` (5 subsequent siblings)
  6 siblings, 0 replies; 8+ messages in thread
From: rguenth at gcc dot gnu.org @ 2011-06-12 12:38 UTC (permalink / raw)
  To: gcc-bugs

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

Richard Guenther <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
   Target Milestone|---                         |4.5.4


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

* [Bug middle-end/48666] [4.6/4.7 Regression] -Warray-bounds doesn't trigger anymore for simple case
  2011-04-18 13:41 [Bug c/48666] New: [4.5.2/4.6 regression] -Warray-bounds doesn't trigger anymore for simple case franz.sirl-kernel at lauterbach dot com
  2011-06-12 12:38 ` [Bug c/48666] " rguenth at gcc dot gnu.org
@ 2011-06-12 13:09 ` rguenth at gcc dot gnu.org
  2011-06-27 15:38 ` jakub at gcc dot gnu.org
                   ` (4 subsequent siblings)
  6 siblings, 0 replies; 8+ messages in thread
From: rguenth at gcc dot gnu.org @ 2011-06-12 13:09 UTC (permalink / raw)
  To: gcc-bugs

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

Richard Guenther <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Priority|P3                          |P2
             Status|UNCONFIRMED                 |NEW
      Known to work|                            |4.3.4, 4.4.5
           Keywords|                            |diagnostic
   Last reconfirmed|                            |2011.06.12 13:08:46
          Component|c                           |middle-end
     Ever Confirmed|0                           |1
            Summary|[4.5.2/4.6 regression]      |[4.6/4.7 Regression]
                   |-Warray-bounds doesn't      |-Warray-bounds doesn't
                   |trigger anymore for simple  |trigger anymore for simple
                   |case                        |case
   Target Milestone|4.5.4                       |4.6.1
      Known to fail|                            |4.6.0, 4.7.0

--- Comment #1 from Richard Guenther <rguenth at gcc dot gnu.org> 2011-06-12 13:08:46 UTC ---
Array bound warnings with unions are quite fragile.

Warns with 4.5.3 as shipped by Debian, so confirmed only for 4.6.


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

* [Bug middle-end/48666] [4.6/4.7 Regression] -Warray-bounds doesn't trigger anymore for simple case
  2011-04-18 13:41 [Bug c/48666] New: [4.5.2/4.6 regression] -Warray-bounds doesn't trigger anymore for simple case franz.sirl-kernel at lauterbach dot com
  2011-06-12 12:38 ` [Bug c/48666] " rguenth at gcc dot gnu.org
  2011-06-12 13:09 ` [Bug middle-end/48666] [4.6/4.7 Regression] " rguenth at gcc dot gnu.org
@ 2011-06-27 15:38 ` jakub at gcc dot gnu.org
  2011-10-26 17:32 ` jakub at gcc dot gnu.org
                   ` (3 subsequent siblings)
  6 siblings, 0 replies; 8+ messages in thread
From: jakub at gcc dot gnu.org @ 2011-06-27 15:38 UTC (permalink / raw)
  To: gcc-bugs

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

Jakub Jelinek <jakub at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
   Target Milestone|4.6.1                       |4.6.2

--- Comment #2 from Jakub Jelinek <jakub at gcc dot gnu.org> 2011-06-27 12:32:46 UTC ---
GCC 4.6.1 is being released.


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

* [Bug middle-end/48666] [4.6/4.7 Regression] -Warray-bounds doesn't trigger anymore for simple case
  2011-04-18 13:41 [Bug c/48666] New: [4.5.2/4.6 regression] -Warray-bounds doesn't trigger anymore for simple case franz.sirl-kernel at lauterbach dot com
                   ` (2 preceding siblings ...)
  2011-06-27 15:38 ` jakub at gcc dot gnu.org
@ 2011-10-26 17:32 ` jakub at gcc dot gnu.org
  2011-12-06 10:27 ` rguenth at gcc dot gnu.org
                   ` (2 subsequent siblings)
  6 siblings, 0 replies; 8+ messages in thread
From: jakub at gcc dot gnu.org @ 2011-10-26 17:32 UTC (permalink / raw)
  To: gcc-bugs

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

Jakub Jelinek <jakub at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
   Target Milestone|4.6.2                       |4.6.3

--- Comment #3 from Jakub Jelinek <jakub at gcc dot gnu.org> 2011-10-26 17:13:32 UTC ---
GCC 4.6.2 is being released.


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

* [Bug middle-end/48666] [4.6/4.7 Regression] -Warray-bounds doesn't trigger anymore for simple case
  2011-04-18 13:41 [Bug c/48666] New: [4.5.2/4.6 regression] -Warray-bounds doesn't trigger anymore for simple case franz.sirl-kernel at lauterbach dot com
                   ` (3 preceding siblings ...)
  2011-10-26 17:32 ` jakub at gcc dot gnu.org
@ 2011-12-06 10:27 ` rguenth at gcc dot gnu.org
  2011-12-06 13:09 ` franz.sirl-kernel at lauterbach dot com
  2011-12-06 13:25 ` manu at gcc dot gnu.org
  6 siblings, 0 replies; 8+ messages in thread
From: rguenth at gcc dot gnu.org @ 2011-12-06 10:27 UTC (permalink / raw)
  To: gcc-bugs

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

Richard Guenther <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
         Resolution|                            |INVALID

--- Comment #4 from Richard Guenther <rguenth at gcc dot gnu.org> 2011-12-06 10:26:54 UTC ---
By design:

  /* Accesses to trailing arrays via pointers may access storage
     beyond the types array bounds.  */
...
      /* If this is the last field in a struct type or a field in a
         union type do not warn.  */
      if (!next)
        return;

both val32Tab2 and val32Tab3 might be allocated larger and used
as trailing array.  We'd warn during GCC bootstrap for our RTX union
for example.


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

* [Bug middle-end/48666] [4.6/4.7 Regression] -Warray-bounds doesn't trigger anymore for simple case
  2011-04-18 13:41 [Bug c/48666] New: [4.5.2/4.6 regression] -Warray-bounds doesn't trigger anymore for simple case franz.sirl-kernel at lauterbach dot com
                   ` (4 preceding siblings ...)
  2011-12-06 10:27 ` rguenth at gcc dot gnu.org
@ 2011-12-06 13:09 ` franz.sirl-kernel at lauterbach dot com
  2011-12-06 13:25 ` manu at gcc dot gnu.org
  6 siblings, 0 replies; 8+ messages in thread
From: franz.sirl-kernel at lauterbach dot com @ 2011-12-06 13:09 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #5 from franz.sirl-kernel at lauterbach dot com 2011-12-06 13:09:25 UTC ---
(In reply to comment #4)

I see. Does it make sense to file an enhancement request for something like
-Warray-bounds=strict ? In our case the code was really wrong and the warning
was helpful.


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

* [Bug middle-end/48666] [4.6/4.7 Regression] -Warray-bounds doesn't trigger anymore for simple case
  2011-04-18 13:41 [Bug c/48666] New: [4.5.2/4.6 regression] -Warray-bounds doesn't trigger anymore for simple case franz.sirl-kernel at lauterbach dot com
                   ` (5 preceding siblings ...)
  2011-12-06 13:09 ` franz.sirl-kernel at lauterbach dot com
@ 2011-12-06 13:25 ` manu at gcc dot gnu.org
  6 siblings, 0 replies; 8+ messages in thread
From: manu at gcc dot gnu.org @ 2011-12-06 13:25 UTC (permalink / raw)
  To: gcc-bugs

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

Manuel López-Ibáñez <manu at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |manu at gcc dot gnu.org

--- Comment #6 from Manuel López-Ibáñez <manu at gcc dot gnu.org> 2011-12-06 13:25:11 UTC ---
Clang warns:

pr48666.c:11:3: warning: array index of '4' indexes past the end of an array
(that contains 3 elements) [-Warray-bounds]
  x->val32Tab3[4] = 42;
  ^            ~
pr48666.c:5:3: note: array 'val32Tab3' declared here
  int val32Tab3[3];
  ^
1 warning generated.

It seems they took the opposite view:

http://llvm.org/bugs/show_bug.cgi?id=10871


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

end of thread, other threads:[~2011-12-06 13:25 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-04-18 13:41 [Bug c/48666] New: [4.5.2/4.6 regression] -Warray-bounds doesn't trigger anymore for simple case franz.sirl-kernel at lauterbach dot com
2011-06-12 12:38 ` [Bug c/48666] " rguenth at gcc dot gnu.org
2011-06-12 13:09 ` [Bug middle-end/48666] [4.6/4.7 Regression] " rguenth at gcc dot gnu.org
2011-06-27 15:38 ` jakub at gcc dot gnu.org
2011-10-26 17:32 ` jakub at gcc dot gnu.org
2011-12-06 10:27 ` rguenth at gcc dot gnu.org
2011-12-06 13:09 ` franz.sirl-kernel at lauterbach dot com
2011-12-06 13:25 ` manu at gcc dot gnu.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).