public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug middle-end/37861]  New: Bogus array bounds warning
@ 2008-10-17  8:27 rguenth at gcc dot gnu dot org
  2008-10-30 17:46 ` [Bug middle-end/37861] " jamborm at gcc dot gnu dot org
                   ` (16 more replies)
  0 siblings, 17 replies; 18+ messages in thread
From: rguenth at gcc dot gnu dot org @ 2008-10-17  8:27 UTC (permalink / raw)
  To: gcc-bugs

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain, Size: 1609 bytes --]

extern int printf (__const char *__restrict __format, ...);

  static int f2(char formatstr[10][100]) {
    int anz;
    for( anz = 0; anz < 10; ++anz ) {
      printf( "%d %s\n", anz, formatstr[anz] );
    } 
    return anz;
  }


  static   char formatstr[10][100];
  int main( void ) {
    int anz;
    anz = f2(formatstr);
    printf( "   %d\n",anz);
    return 0;
  }


with -O3 -Wall this reports

t.c: In function ‘main’:
t.c:6: warning: array subscript is above array bounds
t.c:6: warning: array subscript is above array bounds
t.c:6: warning: array subscript is above array bounds
t.c:6: warning: array subscript is above array bounds
t.c:6: warning: array subscript is above array bounds
t.c:6: warning: array subscript is above array bounds
t.c:6: warning: array subscript is above array bounds
t.c:6: warning: array subscript is above array bounds

because we end up with

<bb 3>:
  # anz_23 = PHI <anz_6(4), anz_22(6)>
  D.1572_5 = (long unsigned int) anz_23;
  D.1573_7 = D.1572_5 * 100;
  D.1574_8 = &formatstr[0][D.1573_7];
  printf (&"%d %s\n"[0], anz_23, D.1574_8);
  anz_9 = anz_23 + 1;

<bb 4>:
  # anz_6 = PHI <anz_9(3)>
  if (anz_6 <= 9)
    goto <bb 3>;
  else
    goto <bb 5>;


-- 
           Summary: Bogus array bounds warning
           Product: gcc
           Version: 4.3.2
            Status: UNCONFIRMED
          Keywords: diagnostic
          Severity: normal
          Priority: P3
         Component: middle-end
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: rguenth at gcc dot gnu dot org


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


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

* [Bug middle-end/37861] Bogus array bounds warning
  2008-10-17  8:27 [Bug middle-end/37861] New: Bogus array bounds warning rguenth at gcc dot gnu dot org
@ 2008-10-30 17:46 ` jamborm at gcc dot gnu dot org
  2008-10-30 18:45 ` manu at gcc dot gnu dot org
                   ` (15 subsequent siblings)
  16 siblings, 0 replies; 18+ messages in thread
From: jamborm at gcc dot gnu dot org @ 2008-10-30 17:46 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #1 from jamborm at gcc dot gnu dot org  2008-10-30 17:43 -------
Well, yes, we do generate that code.  However, the loop is unrolled
later on and the IR code on which the vrp complains later on actually is:

main ()
{
  unsigned int ivtmp.27;
  unsigned int pretmp.17;
  int pretmp.16;
  unsigned int pretmp.15;
  unsigned int anz.0;
  unsigned int D.1258;
  char * D.1259;
  int anz;

  # BLOCK 2 freq:909
  # PRED: ENTRY [100.0%]  (fallthru,exec)
  D.1259_28 = &formatstr[0][0];
  printf (&"%d %s\n"[0], 0, D.1259_28);
  D.1259_39 = &formatstr[0][100];
  printf (&"%d %s\n"[0], 1, D.1259_39);
  D.1259_50 = &formatstr[0][200];
  printf (&"%d %s\n"[0], 2, D.1259_50);
  D.1259_61 = &formatstr[0][300];
  printf (&"%d %s\n"[0], 3, D.1259_61);
  D.1259_72 = &formatstr[0][400];
  printf (&"%d %s\n"[0], 4, D.1259_72);
  D.1259_83 = &formatstr[0][500];
  printf (&"%d %s\n"[0], 5, D.1259_83);
  D.1259_94 = &formatstr[0][600];
  printf (&"%d %s\n"[0], 6, D.1259_94);
  D.1259_105 = &formatstr[0][700];
  printf (&"%d %s\n"[0], 7, D.1259_105);
  D.1259_116 = &formatstr[0][800];
  printf (&"%d %s\n"[0], 8, D.1259_116);
  D.1259_7 = &formatstr[0][900];
  printf (&"%d %s\n"[0], 9, D.1259_7);
  printf (&"   %d\n"[0], 10);
  return 0;
  # SUCC: EXIT [100.0%] 

}


-- 


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


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

* [Bug middle-end/37861] Bogus array bounds warning
  2008-10-17  8:27 [Bug middle-end/37861] New: Bogus array bounds warning rguenth at gcc dot gnu dot org
  2008-10-30 17:46 ` [Bug middle-end/37861] " jamborm at gcc dot gnu dot org
@ 2008-10-30 18:45 ` manu at gcc dot gnu dot org
  2008-10-31 17:54 ` jamborm at gcc dot gnu dot org
                   ` (14 subsequent siblings)
  16 siblings, 0 replies; 18+ messages in thread
From: manu at gcc dot gnu dot org @ 2008-10-30 18:45 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #2 from manu at gcc dot gnu dot org  2008-10-30 18:43 -------
So what is this? Is the warning logic wrong or is the IR wrong? It seems to me
that IR is valid.


-- 

manu at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
     Ever Confirmed|0                           |1
   Last reconfirmed|0000-00-00 00:00:00         |2008-10-30 18:43:24
               date|                            |


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


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

* [Bug middle-end/37861] Bogus array bounds warning
  2008-10-17  8:27 [Bug middle-end/37861] New: Bogus array bounds warning rguenth at gcc dot gnu dot org
  2008-10-30 17:46 ` [Bug middle-end/37861] " jamborm at gcc dot gnu dot org
  2008-10-30 18:45 ` manu at gcc dot gnu dot org
@ 2008-10-31 17:54 ` jamborm at gcc dot gnu dot org
  2008-10-31 18:02 ` jamborm at gcc dot gnu dot org
                   ` (13 subsequent siblings)
  16 siblings, 0 replies; 18+ messages in thread
From: jamborm at gcc dot gnu dot org @ 2008-10-31 17:54 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #3 from jamborm at gcc dot gnu dot org  2008-10-31 17:52 -------
The test-case  in the bug description  leads to bogus  warnings in the
second  run of the  VRP pass.   Yesterday me  and Richi  discussed the
possibility of simply  not-giving out any warnings in  the second runs
(as opposed  to the first which  would still generate  the warnings it
does).

However, I have managed to modify the test case so that bogus warnings
are spitted  out in  the first  run and so  this workaround  would not
really solve the problem:

extern int printf (__const char *__restrict __format, ...);

static int f3(int v)
{
  int i,j = 0;
  for (i = 0; i <= v; i++)
    j++;
  return j;
}

static int f2(char formatstr[10][100]) {
  printf( "%d %s\n", 0, formatstr[f3(0)] );
  printf( "%d %s\n", 1, formatstr[f3(1)] );
  printf( "%d %s\n", 2, formatstr[f3(2)] );
  printf( "%d %s\n", 3, formatstr[f3(3)] );
  return 3;
}

static   char formatstr[10][100];
int main( void ) {
  int anz;
  anz = f2(formatstr);
  printf( "   %d\n",anz);
  return 0;
}


-- 

jamborm at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |jamborm at gcc dot gnu dot
                   |                            |org


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


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

* [Bug middle-end/37861] Bogus array bounds warning
  2008-10-17  8:27 [Bug middle-end/37861] New: Bogus array bounds warning rguenth at gcc dot gnu dot org
                   ` (2 preceding siblings ...)
  2008-10-31 17:54 ` jamborm at gcc dot gnu dot org
@ 2008-10-31 18:02 ` jamborm at gcc dot gnu dot org
  2008-11-04 15:52 ` jamborm at gcc dot gnu dot org
                   ` (12 subsequent siblings)
  16 siblings, 0 replies; 18+ messages in thread
From: jamborm at gcc dot gnu dot org @ 2008-10-31 18:02 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #4 from jamborm at gcc dot gnu dot org  2008-10-31 18:01 -------
(In reply to comment #2)
> So what is this? Is the warning logic wrong or is the IR wrong? It seems to me
> that IR is valid.
> 

Well, it  probabaly isn't.  I guess  the second index  should not ever
exceed  its upper bound  (100 in  these test  cases) and  it blatantly
does.   The  proper solution  (again,  as  suggested  by Richi  today)
therefore  most   probabaly  is   "not  to  re-create   ARRAY_REF  for
multi-dimensional arrays" at some place in folding.


-- 


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


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

* [Bug middle-end/37861] Bogus array bounds warning
  2008-10-17  8:27 [Bug middle-end/37861] New: Bogus array bounds warning rguenth at gcc dot gnu dot org
                   ` (3 preceding siblings ...)
  2008-10-31 18:02 ` jamborm at gcc dot gnu dot org
@ 2008-11-04 15:52 ` jamborm at gcc dot gnu dot org
  2008-11-05  9:56 ` [Bug middle-end/37861] [4.3/4.4 Regression] " rguenth at gcc dot gnu dot org
                   ` (11 subsequent siblings)
  16 siblings, 0 replies; 18+ messages in thread
From: jamborm at gcc dot gnu dot org @ 2008-11-04 15:52 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #5 from jamborm at gcc dot gnu dot org  2008-11-04 15:51 -------
Right, so this is the most simple (albeit not yet tested) patch I've
been able to come up with.  I am not sure what overall impact this is
going to have.  I'll briefly try to come up with something more
sophisticated...

Index: gcc/tree-ssa-forwprop.c
===================================================================
--- gcc/tree-ssa-forwprop.c     (revision 141546)
+++ gcc/tree-ssa-forwprop.c     (working copy)
@@ -812,6 +812,7 @@ forward_propagate_addr_expr_1 (tree name
   array_ref = TREE_OPERAND (def_rhs, 0);
   if (TREE_CODE (array_ref) != ARRAY_REF
       || TREE_CODE (TREE_TYPE (TREE_OPERAND (array_ref, 0))) != ARRAY_TYPE
+      || TREE_CODE (TREE_OPERAND (array_ref, 0)) == INDIRECT_REF
       || !integer_zerop (TREE_OPERAND (array_ref, 1)))
     return false;


-- 


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


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

* [Bug middle-end/37861] [4.3/4.4 Regression] Bogus array bounds warning
  2008-10-17  8:27 [Bug middle-end/37861] New: Bogus array bounds warning rguenth at gcc dot gnu dot org
                   ` (4 preceding siblings ...)
  2008-11-04 15:52 ` jamborm at gcc dot gnu dot org
@ 2008-11-05  9:56 ` rguenth at gcc dot gnu dot org
  2008-11-05 16:09 ` jamborm at gcc dot gnu dot org
                   ` (10 subsequent siblings)
  16 siblings, 0 replies; 18+ messages in thread
From: rguenth at gcc dot gnu dot org @ 2008-11-05  9:56 UTC (permalink / raw)
  To: gcc-bugs



-- 

rguenth at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
      Known to fail|                            |4.3.2
      Known to work|                            |4.2.4
            Summary|Bogus array bounds warning  |[4.3/4.4 Regression] Bogus
                   |                            |array bounds warning
   Target Milestone|---                         |4.3.3


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


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

* [Bug middle-end/37861] [4.3/4.4 Regression] Bogus array bounds warning
  2008-10-17  8:27 [Bug middle-end/37861] New: Bogus array bounds warning rguenth at gcc dot gnu dot org
                   ` (5 preceding siblings ...)
  2008-11-05  9:56 ` [Bug middle-end/37861] [4.3/4.4 Regression] " rguenth at gcc dot gnu dot org
@ 2008-11-05 16:09 ` jamborm at gcc dot gnu dot org
  2008-11-05 20:51 ` [Bug middle-end/37861] [4.3 " jakub at gcc dot gnu dot org
                   ` (9 subsequent siblings)
  16 siblings, 0 replies; 18+ messages in thread
From: jamborm at gcc dot gnu dot org @ 2008-11-05 16:09 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #6 from jamborm at gcc dot gnu dot org  2008-11-05 16:08 -------
Subject: Bug 37861

Author: jamborm
Date: Wed Nov  5 16:06:38 2008
New Revision: 141613

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=141613
Log:
2008-11-05  Martin Jambor  <mjambor@suse.cz>

        PR middle-end/37861
        * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Don't turn
        pointer arithmetics into array_ref if the array is accessed
        through an indirect_ref.
        * testsuite/gcc.dg/Warray-bounds-5.c: New file.
        * testsuite/gcc.dg/Warray-bounds-6.c: New file.


Added:
    trunk/gcc/testsuite/gcc.dg/Warray-bounds-5.c
    trunk/gcc/testsuite/gcc.dg/Warray-bounds-6.c
Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/testsuite/ChangeLog
    trunk/gcc/tree-ssa-forwprop.c


-- 


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


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

* [Bug middle-end/37861] [4.3 Regression] Bogus array bounds warning
  2008-10-17  8:27 [Bug middle-end/37861] New: Bogus array bounds warning rguenth at gcc dot gnu dot org
                   ` (6 preceding siblings ...)
  2008-11-05 16:09 ` jamborm at gcc dot gnu dot org
@ 2008-11-05 20:51 ` jakub at gcc dot gnu dot org
  2008-11-10 10:07 ` jamborm at gcc dot gnu dot org
                   ` (8 subsequent siblings)
  16 siblings, 0 replies; 18+ messages in thread
From: jakub at gcc dot gnu dot org @ 2008-11-05 20:51 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #7 from jakub at gcc dot gnu dot org  2008-11-05 20:50 -------
Fixed on the trunk so far.


-- 

jakub at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
      Known to work|4.2.4                       |4.2.4 4.4.0
            Summary|[4.3/4.4 Regression] Bogus  |[4.3 Regression] Bogus array
                   |array bounds warning        |bounds warning


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


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

* [Bug middle-end/37861] [4.3 Regression] Bogus array bounds warning
  2008-10-17  8:27 [Bug middle-end/37861] New: Bogus array bounds warning rguenth at gcc dot gnu dot org
                   ` (7 preceding siblings ...)
  2008-11-05 20:51 ` [Bug middle-end/37861] [4.3 " jakub at gcc dot gnu dot org
@ 2008-11-10 10:07 ` jamborm at gcc dot gnu dot org
  2008-11-10 18:41 ` jamborm at gcc dot gnu dot org
                   ` (7 subsequent siblings)
  16 siblings, 0 replies; 18+ messages in thread
From: jamborm at gcc dot gnu dot org @ 2008-11-10 10:07 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #8 from jamborm at gcc dot gnu dot org  2008-11-10 10:06 -------
The previous patch resulted into a regression on m32c-unknown-elf and
thus I prepared a less intrusive one below.  See also:

* http://gcc.gnu.org/ml/gcc/2008-11/msg00058.html and
* http://gcc.gnu.org/ml/gcc-patches/2008-11/msg00353.html

The patch is pending approval in the mailing list.

2008-11-07  Martin Jambor  <mjambor@suse.cz>

        * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Do not check
        for INDIRECT_REFs.
        (forward_propagate_addr_into_variable_array_index): Check that the
        offset is not computed from a MULT_EXPR, use is_gimple_assign rather
        than the gimple code directly.


Index: gcc/tree-ssa-forwprop.c
===================================================================
--- gcc/tree-ssa-forwprop.c     (revision 141673)
+++ gcc/tree-ssa-forwprop.c     (working copy)
@@ -613,19 +613,27 @@ forward_propagate_addr_into_variable_arr
   tree index;
   gimple offset_def, use_stmt = gsi_stmt (*use_stmt_gsi);

-  /* Try to find an expression for a proper index.  This is either
-     a multiplication expression by the element size or just the
-     ssa name we came along in case the element size is one.  */
+  /* Get the offset's defining statement.  */
+  offset_def = SSA_NAME_DEF_STMT (offset);
+
+  /* Try to find an expression for a proper index.  This is either a
+     multiplication expression by the element size or just the ssa name we
came
+     along in case the element size is one. In that case, however, we do not
+     allow multiplications because they can be computing index to a higher
+     level dimension (PR 37861). */
   if (integer_onep (TYPE_SIZE_UNIT (TREE_TYPE (TREE_TYPE (def_rhs)))))
-    index = offset;
-  else
     {
-      /* Get the offset's defining statement.  */
-      offset_def = SSA_NAME_DEF_STMT (offset);
+      if (is_gimple_assign (offset_def)
+         && gimple_assign_rhs_code (offset_def) == MULT_EXPR)
+       return false;

+      index = offset;
+    }
+  else
+    {
       /* The statement which defines OFFSET before type conversion
          must be a simple GIMPLE_ASSIGN.  */
-      if (gimple_code (offset_def) != GIMPLE_ASSIGN)
+      if (!is_gimple_assign (offset_def))
        return false;

       /* The RHS of the statement which defines OFFSET must be a
@@ -802,9 +810,6 @@ forward_propagate_addr_expr_1 (tree name
   array_ref = TREE_OPERAND (def_rhs, 0);
   if (TREE_CODE (array_ref) != ARRAY_REF
       || TREE_CODE (TREE_TYPE (TREE_OPERAND (array_ref, 0))) != ARRAY_TYPE
-      /* Avoid accessing hidden multidimensional arrays in this way or VRP
-        might give out bogus warnings (see PR 37861) */
-      || TREE_CODE (TREE_OPERAND (array_ref, 0)) == INDIRECT_REF
       || !integer_zerop (TREE_OPERAND (array_ref, 1)))
     return false;



-- 


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


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

* [Bug middle-end/37861] [4.3 Regression] Bogus array bounds warning
  2008-10-17  8:27 [Bug middle-end/37861] New: Bogus array bounds warning rguenth at gcc dot gnu dot org
                   ` (8 preceding siblings ...)
  2008-11-10 10:07 ` jamborm at gcc dot gnu dot org
@ 2008-11-10 18:41 ` jamborm at gcc dot gnu dot org
  2008-11-15  0:01 ` pinskia at gcc dot gnu dot org
                   ` (6 subsequent siblings)
  16 siblings, 0 replies; 18+ messages in thread
From: jamborm at gcc dot gnu dot org @ 2008-11-10 18:41 UTC (permalink / raw)
  To: gcc-bugs



-- 

jamborm at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
         AssignedTo|unassigned at gcc dot gnu   |jamborm at gcc dot gnu dot
                   |dot org                     |org
             Status|NEW                         |ASSIGNED
   Last reconfirmed|2008-10-30 18:43:24         |2008-11-10 18:39:51
               date|                            |


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


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

* [Bug middle-end/37861] [4.3 Regression] Bogus array bounds warning
  2008-10-17  8:27 [Bug middle-end/37861] New: Bogus array bounds warning rguenth at gcc dot gnu dot org
                   ` (9 preceding siblings ...)
  2008-11-10 18:41 ` jamborm at gcc dot gnu dot org
@ 2008-11-15  0:01 ` pinskia at gcc dot gnu dot org
  2008-11-30 23:02 ` rguenth at gcc dot gnu dot org
                   ` (5 subsequent siblings)
  16 siblings, 0 replies; 18+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2008-11-15  0:01 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #9 from pinskia at gcc dot gnu dot org  2008-11-14 23:59 -------
*** Bug 35279 has been marked as a duplicate of this bug. ***


-- 

pinskia at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |rjpeters at klab dot caltech
                   |                            |dot edu


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


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

* [Bug middle-end/37861] [4.3 Regression] Bogus array bounds warning
  2008-10-17  8:27 [Bug middle-end/37861] New: Bogus array bounds warning rguenth at gcc dot gnu dot org
                   ` (10 preceding siblings ...)
  2008-11-15  0:01 ` pinskia at gcc dot gnu dot org
@ 2008-11-30 23:02 ` rguenth at gcc dot gnu dot org
  2008-12-02 14:34 ` jamborm at gcc dot gnu dot org
                   ` (4 subsequent siblings)
  16 siblings, 0 replies; 18+ messages in thread
From: rguenth at gcc dot gnu dot org @ 2008-11-30 23:02 UTC (permalink / raw)
  To: gcc-bugs



-- 

rguenth at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Priority|P3                          |P2


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


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

* [Bug middle-end/37861] [4.3 Regression] Bogus array bounds warning
  2008-10-17  8:27 [Bug middle-end/37861] New: Bogus array bounds warning rguenth at gcc dot gnu dot org
                   ` (11 preceding siblings ...)
  2008-11-30 23:02 ` rguenth at gcc dot gnu dot org
@ 2008-12-02 14:34 ` jamborm at gcc dot gnu dot org
  2009-01-24 10:26 ` rguenth at gcc dot gnu dot org
                   ` (3 subsequent siblings)
  16 siblings, 0 replies; 18+ messages in thread
From: jamborm at gcc dot gnu dot org @ 2008-12-02 14:34 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #10 from jamborm at gcc dot gnu dot org  2008-12-02 14:32 -------
Subject: Bug 37861

Author: jamborm
Date: Tue Dec  2 14:30:55 2008
New Revision: 142355

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=142355
Log:
2008-12-02  Martin Jambor  <mjambor@suse.cz>

        PR middle-end/37861
        * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Do not check
        for INDIRECT_REFs.
        (forward_propagate_addr_into_variable_array_index): Check that the
        offset is not computed from a MULT_EXPR, use is_gimple_assign rather
        than the gimple code directly.


Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/tree-ssa-forwprop.c


-- 


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


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

* [Bug middle-end/37861] [4.3 Regression] Bogus array bounds warning
  2008-10-17  8:27 [Bug middle-end/37861] New: Bogus array bounds warning rguenth at gcc dot gnu dot org
                   ` (12 preceding siblings ...)
  2008-12-02 14:34 ` jamborm at gcc dot gnu dot org
@ 2009-01-24 10:26 ` rguenth at gcc dot gnu dot org
  2009-02-28  0:31 ` jamborm at gcc dot gnu dot org
                   ` (2 subsequent siblings)
  16 siblings, 0 replies; 18+ messages in thread
From: rguenth at gcc dot gnu dot org @ 2009-01-24 10:26 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #11 from rguenth at gcc dot gnu dot org  2009-01-24 10:20 -------
GCC 4.3.3 is being released, adjusting target milestone.


-- 

rguenth at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
   Target Milestone|4.3.3                       |4.3.4


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


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

* [Bug middle-end/37861] [4.3 Regression] Bogus array bounds warning
  2008-10-17  8:27 [Bug middle-end/37861] New: Bogus array bounds warning rguenth at gcc dot gnu dot org
                   ` (13 preceding siblings ...)
  2009-01-24 10:26 ` rguenth at gcc dot gnu dot org
@ 2009-02-28  0:31 ` jamborm at gcc dot gnu dot org
  2009-02-28 18:33 ` jamborm at gcc dot gnu dot org
  2009-02-28 22:46 ` jamborm at gcc dot gnu dot org
  16 siblings, 0 replies; 18+ messages in thread
From: jamborm at gcc dot gnu dot org @ 2009-02-28  0:31 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #12 from jamborm at gcc dot gnu dot org  2009-02-28 00:30 -------
I have just posted a patch to fix this issue on the 4.3 branch to the
mailing list:

http://gcc.gnu.org/ml/gcc-patches/2009-02/msg01245.html


-- 


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


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

* [Bug middle-end/37861] [4.3 Regression] Bogus array bounds warning
  2008-10-17  8:27 [Bug middle-end/37861] New: Bogus array bounds warning rguenth at gcc dot gnu dot org
                   ` (14 preceding siblings ...)
  2009-02-28  0:31 ` jamborm at gcc dot gnu dot org
@ 2009-02-28 18:33 ` jamborm at gcc dot gnu dot org
  2009-02-28 22:46 ` jamborm at gcc dot gnu dot org
  16 siblings, 0 replies; 18+ messages in thread
From: jamborm at gcc dot gnu dot org @ 2009-02-28 18:33 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #13 from jamborm at gcc dot gnu dot org  2009-02-28 18:33 -------
Subject: Bug 37861

Author: jamborm
Date: Sat Feb 28 18:33:27 2009
New Revision: 144491

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=144491
Log:
2009-02-28  Martin Jambor  <mjambor@suse.cz>

        Backport from mainline:
        2008-12-02  Martin Jambor  <mjambor@suse.cz>

        PR middle-end/37861
        * tree-ssa-forwprop.c 
        (forward_propagate_addr_into_variable_array_index): Check that the
        offset is not computed from a MULT_EXPR if element size is one.



Modified:
    branches/gcc-4_3-branch/gcc/ChangeLog
    branches/gcc-4_3-branch/gcc/tree-ssa-forwprop.c


-- 


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


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

* [Bug middle-end/37861] [4.3 Regression] Bogus array bounds warning
  2008-10-17  8:27 [Bug middle-end/37861] New: Bogus array bounds warning rguenth at gcc dot gnu dot org
                   ` (15 preceding siblings ...)
  2009-02-28 18:33 ` jamborm at gcc dot gnu dot org
@ 2009-02-28 22:46 ` jamborm at gcc dot gnu dot org
  16 siblings, 0 replies; 18+ messages in thread
From: jamborm at gcc dot gnu dot org @ 2009-02-28 22:46 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #14 from jamborm at gcc dot gnu dot org  2009-02-28 22:46 -------
Fixed with revision 144491:

te: Sat Feb 28 18:33:27 2009
New Revision: 144491

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=144491
Log:
2009-02-28  Martin Jambor  <mjambor@suse.cz>

        Backport from mainline:
        2008-12-02  Martin Jambor  <mjambor@suse.cz>

        PR middle-end/37861
        * tree-ssa-forwprop.c 
        (forward_propagate_addr_into_variable_array_index): Check that the
        offset is not computed from a MULT_EXPR if element size is one.



Modified:
    branches/gcc-4_3-branch/gcc/ChangeLog
    branches/gcc-4_3-branch/gcc/tree-ssa-forwprop.c


-- 

jamborm at gcc dot gnu dot org changed:

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


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


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

end of thread, other threads:[~2009-02-28 22:46 UTC | newest]

Thread overview: 18+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2008-10-17  8:27 [Bug middle-end/37861] New: Bogus array bounds warning rguenth at gcc dot gnu dot org
2008-10-30 17:46 ` [Bug middle-end/37861] " jamborm at gcc dot gnu dot org
2008-10-30 18:45 ` manu at gcc dot gnu dot org
2008-10-31 17:54 ` jamborm at gcc dot gnu dot org
2008-10-31 18:02 ` jamborm at gcc dot gnu dot org
2008-11-04 15:52 ` jamborm at gcc dot gnu dot org
2008-11-05  9:56 ` [Bug middle-end/37861] [4.3/4.4 Regression] " rguenth at gcc dot gnu dot org
2008-11-05 16:09 ` jamborm at gcc dot gnu dot org
2008-11-05 20:51 ` [Bug middle-end/37861] [4.3 " jakub at gcc dot gnu dot org
2008-11-10 10:07 ` jamborm at gcc dot gnu dot org
2008-11-10 18:41 ` jamborm at gcc dot gnu dot org
2008-11-15  0:01 ` pinskia at gcc dot gnu dot org
2008-11-30 23:02 ` rguenth at gcc dot gnu dot org
2008-12-02 14:34 ` jamborm at gcc dot gnu dot org
2009-01-24 10:26 ` rguenth at gcc dot gnu dot org
2009-02-28  0:31 ` jamborm at gcc dot gnu dot org
2009-02-28 18:33 ` jamborm at gcc dot gnu dot org
2009-02-28 22:46 ` jamborm 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).