public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug rtl-optimization/26587]  New: strict aliasing incorrectly pre-loads an array element
@ 2006-03-07  1:47 solar at openwall dot com
  2006-03-07  1:50 ` [Bug rtl-optimization/26587] " solar at openwall dot com
                   ` (13 more replies)
  0 siblings, 14 replies; 15+ messages in thread
From: solar at openwall dot com @ 2006-03-07  1:47 UTC (permalink / raw)
  To: gcc-bugs

I _think_ I understand C strict aliasing - it's based on the type of
expressions.  In the testcase below, the type of expressions is the same, which
is why I think it's a compiler bug.

The bug is reproducible with gcc 4.1.0 on multiple platforms.  I've tried i386
(i686) and alpha myself and am able to reproduce the problem on both.  The
original reporter of the problem with my program (the real one, not the
testcase) was able to reproduce the problem on other architectures.

The problem does not occur with gcc 2.95.3 and 3.4.5.

Basically, in the program below, gcc 4.1.0 would pre-load BF_current.P[0] and
BF_current.P[17] into registers or stack locations - however the loop modifies
P[0] via ptr.

#include <stdio.h>
#include <string.h>

#define BF_N 16

typedef unsigned int BF_word;
typedef BF_word BF_key[BF_N + 2];

static struct {
        BF_word S[4][0x100];
        BF_key P;
} BF_current;

#define BF_ROUND(L, R, N) \
        tmp1 = L & 0xFF; \
        tmp2 = L >> 8; \
        tmp2 &= 0xFF; \
        tmp3 = L >> 16; \
        tmp3 &= 0xFF; \
        tmp4 = L >> 24; \
        tmp1 = BF_current.S[3][tmp1]; \
        tmp2 = BF_current.S[2][tmp2]; \
        tmp3 = BF_current.S[1][tmp3]; \
        tmp3 += BF_current.S[0][tmp4]; \
        tmp3 ^= tmp2; \
        R ^= BF_current.P[N + 1]; \
        tmp3 += tmp1; \
        R ^= tmp3;

#define BF_ENCRYPT \
        L ^= BF_current.P[0]; \
        { \
                int i; \
                for (i = 0; i < BF_N; i += 2) { \
                        BF_ROUND(L, R, i); \
                        BF_ROUND(R, L, i+1); \
                } \
        } \
        tmp4 = R; \
        R = L; \
        L = tmp4 ^ BF_current.P[BF_N + 1];

int main(void)
{
        BF_word L, R;
        BF_word tmp1, tmp2, tmp3, tmp4, *ptr;
        BF_word i, j;

        for (i = 0; i < 4; i++)
                for (j = 0; j < 0x100; j++)
                        BF_current.S[i][j] = (i + 0x12345678) * j;
        for (i = 0; i < BF_N + 2; i++)
                BF_current.P[i] = i * 0x98765432;

        L = R = 0;
        ptr = BF_current.P;
        do {
#ifndef WORKAROUND
                ptr += 2;
                BF_ENCRYPT;
                *(ptr - 2) = L;
                *(ptr - 1) = R;
#else
                BF_ENCRYPT;
                *ptr = L;
                *(ptr + 1) = R;
                ptr += 2;
#endif
        } while (ptr < &BF_current.P[BF_N + 2]);

        printf("%08x %08x\n", L, R);

        return 0;
}

host!user:~$ gcc gcc-4.1.0-aliasing-bug.c -o gcc-4.1.0-aliasing-bug -Wall -O2
-fno-strict-aliasing
host!user:~$ ./gcc-4.1.0-aliasing-bug 
8261e2e6 f1f1bc33
host!user:~$ gcc gcc-4.1.0-aliasing-bug.c -o gcc-4.1.0-aliasing-bug -Wall -O2 
host!user:~$ ./gcc-4.1.0-aliasing-bug 
46be060b df072f90
host!user:~$ gcc gcc-4.1.0-aliasing-bug.c -o gcc-4.1.0-aliasing-bug -Wall -O2
-DWORKAROUND
host!user:~$ ./gcc-4.1.0-aliasing-bug 
8261e2e6 f1f1bc33
host!user:~$ uname -mrs
Linux 2.4.32-ow1 alpha
host!user:~$ gcc -v
Using built-in specs.
Target: alphaev56-unknown-linux-gnu
Configured with: ./configure --prefix=/home/user/gcc-4.1.0
Thread model: posix
gcc version 4.1.0

(i386 gives the same results)


-- 
           Summary: strict aliasing incorrectly pre-loads an array element
           Product: gcc
           Version: 4.1.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: rtl-optimization
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: solar at openwall dot com
 GCC build triplet: i686-pc-linux-gnu
  GCC host triplet: i686-pc-linux-gnu
GCC target triplet: i686-pc-linux-gnu


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


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

* [Bug rtl-optimization/26587] strict aliasing incorrectly pre-loads an array element
  2006-03-07  1:47 [Bug rtl-optimization/26587] New: strict aliasing incorrectly pre-loads an array element solar at openwall dot com
@ 2006-03-07  1:50 ` solar at openwall dot com
  2006-03-07  2:03 ` pinskia at gcc dot gnu dot org
                   ` (12 subsequent siblings)
  13 siblings, 0 replies; 15+ messages in thread
From: solar at openwall dot com @ 2006-03-07  1:50 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #1 from solar at openwall dot com  2006-03-07 01:50 -------
Created an attachment (id=10979)
 --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=10979&action=view)
testcase


-- 


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


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

* [Bug rtl-optimization/26587] strict aliasing incorrectly pre-loads an array element
  2006-03-07  1:47 [Bug rtl-optimization/26587] New: strict aliasing incorrectly pre-loads an array element solar at openwall dot com
  2006-03-07  1:50 ` [Bug rtl-optimization/26587] " solar at openwall dot com
@ 2006-03-07  2:03 ` pinskia at gcc dot gnu dot org
  2006-03-07  2:08 ` [Bug rtl-optimization/26587] [4.1 Regression] strict aliasing incorrectly pre-loads an array element with loops pinskia at gcc dot gnu dot org
                   ` (11 subsequent siblings)
  13 siblings, 0 replies; 15+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2006-03-07  2:03 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #2 from pinskia at gcc dot gnu dot org  2006-03-07 02:03 -------
Hmm -O2 -fno-ivopts allows for it to work.


-- 


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


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

* [Bug rtl-optimization/26587] [4.1 Regression] strict aliasing incorrectly pre-loads an array element with loops
  2006-03-07  1:47 [Bug rtl-optimization/26587] New: strict aliasing incorrectly pre-loads an array element solar at openwall dot com
  2006-03-07  1:50 ` [Bug rtl-optimization/26587] " solar at openwall dot com
  2006-03-07  2:03 ` pinskia at gcc dot gnu dot org
@ 2006-03-07  2:08 ` pinskia at gcc dot gnu dot org
  2006-03-07 10:02 ` rguenth at gcc dot gnu dot org
                   ` (10 subsequent siblings)
  13 siblings, 0 replies; 15+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2006-03-07  2:08 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #3 from pinskia at gcc dot gnu dot org  2006-03-07 02:08 -------
This is interesting because the mainline works with or without
-fno-strict-aliasing.

Confirmed a regression, hopefully someone will reduce the testcase further.


-- 

pinskia at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |pinskia at gcc dot gnu dot
                   |                            |org
           Severity|normal                      |critical
             Status|UNCONFIRMED                 |NEW
     Ever Confirmed|0                           |1
           Keywords|                            |wrong-code
      Known to fail|                            |4.1.0
      Known to work|                            |4.2.0 4.0.3
   Last reconfirmed|0000-00-00 00:00:00         |2006-03-07 02:08:20
               date|                            |
            Summary|strict aliasing incorrectly |[4.1 Regression] strict
                   |pre-loads an array element  |aliasing incorrectly pre-
                   |                            |loads an array element with
                   |                            |loops
   Target Milestone|---                         |4.1.1


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


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

* [Bug rtl-optimization/26587] [4.1 Regression] strict aliasing incorrectly pre-loads an array element with loops
  2006-03-07  1:47 [Bug rtl-optimization/26587] New: strict aliasing incorrectly pre-loads an array element solar at openwall dot com
                   ` (2 preceding siblings ...)
  2006-03-07  2:08 ` [Bug rtl-optimization/26587] [4.1 Regression] strict aliasing incorrectly pre-loads an array element with loops pinskia at gcc dot gnu dot org
@ 2006-03-07 10:02 ` rguenth at gcc dot gnu dot org
  2006-03-07 10:12 ` rguenth at gcc dot gnu dot org
                   ` (9 subsequent siblings)
  13 siblings, 0 replies; 15+ messages in thread
From: rguenth at gcc dot gnu dot org @ 2006-03-07 10:02 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #4 from rguenth at gcc dot gnu dot org  2006-03-07 10:02 -------
Reduced testcase:

extern int printf(const char *format, ...);
typedef unsigned int BF_word;
typedef BF_word BF_key[16 + 2];
static struct {
    BF_key P;
} BF_current;
int main(void)
{
    BF_word L, R;
    BF_word tmp1, tmp2, tmp3, tmp4, *ptr;
    L = R = 0;
    ptr = BF_current.P;
    do {
        int i;
        ptr += 2;
        L ^= BF_current.P[0];
        for (i = 0; i < 16; i += 2) {
            tmp1 = L & 0xFF;
            tmp3 += tmp1;
            L ^= tmp3;;
        }
        *(ptr - 2) = L;
    } while (ptr < &BF_current.P[16 + 2]);
    printf("%08x %08x\n", L, R);
    return 0;
}

-O2 -fno-strict-aliasing:
0001e6d4 00000000

-O2:
0001c100 00000000

-fno-ivopts does not fix it.


-- 


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


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

* [Bug rtl-optimization/26587] [4.1 Regression] strict aliasing incorrectly pre-loads an array element with loops
  2006-03-07  1:47 [Bug rtl-optimization/26587] New: strict aliasing incorrectly pre-loads an array element solar at openwall dot com
                   ` (3 preceding siblings ...)
  2006-03-07 10:02 ` rguenth at gcc dot gnu dot org
@ 2006-03-07 10:12 ` rguenth at gcc dot gnu dot org
  2006-03-07 10:39 ` [Bug tree-optimization/26587] " rguenth at gcc dot gnu dot org
                   ` (8 subsequent siblings)
  13 siblings, 0 replies; 15+ messages in thread
From: rguenth at gcc dot gnu dot org @ 2006-03-07 10:12 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #5 from rguenth at gcc dot gnu dot org  2006-03-07 10:12 -------
Umm, that has uninitialized vars.  The following is ok wrt -Wall -Werror:

extern int printf(const char *, ...);
typedef unsigned int BF_word;
typedef BF_word BF_key[16 + 2];
static struct {
    BF_key P;
} BF_current;
int main(void)
{
    BF_word L;
    BF_word tmp4, *ptr;
    BF_word i;
    for (i = 0; i < 16 + 2; i++)
        BF_current.P[i] = i * 0x98765432;
    L = 0;
    ptr = BF_current.P;
    do {
        ptr += 2;
        L ^= BF_current.P[0];
        tmp4 = L >> 24;
        L = tmp4 ^ BF_current.P[16 + 1];
        *(ptr - 2) = L;
    } while (ptr < &BF_current.P[16 + 2]);
    printf("%08x\n", L);
    return 0;
}

and prints 1fdb9752 vs. 1fdb974d.


-- 


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


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

* [Bug tree-optimization/26587] [4.1 Regression] strict aliasing incorrectly pre-loads an array element with loops
  2006-03-07  1:47 [Bug rtl-optimization/26587] New: strict aliasing incorrectly pre-loads an array element solar at openwall dot com
                   ` (4 preceding siblings ...)
  2006-03-07 10:12 ` rguenth at gcc dot gnu dot org
@ 2006-03-07 10:39 ` rguenth at gcc dot gnu dot org
  2006-03-07 10:41 ` [Bug tree-optimization/26587] [4.1/4.2 " rguenth at gcc dot gnu dot org
                   ` (7 subsequent siblings)
  13 siblings, 0 replies; 15+ messages in thread
From: rguenth at gcc dot gnu dot org @ 2006-03-07 10:39 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #6 from rguenth at gcc dot gnu dot org  2006-03-07 10:39 -------
With -fno-ivopts -fno-tree-vrp tree-optimizers produce the same for both 4.1.0
and 4.2.0 until tree loop-invariant-motion, which does the wrong transformation
because of bogus alias information:

<L11>:;

  # TMT.6_23 = PHI <TMT.6_24(3), TMT.6_25(5)>;
  # ptr_3 = PHI <&BF_current.P[0](3), ptr_9(5)>;
  # L_2 = PHI <0(3), L_14(5)>;
<L7>:;
  ptr_9 = ptr_3 + 8B;
  #   VUSE <BF_current_21>;
  D.1297_10 = BF_current.P[0];
  L_11 = L_2 ^ D.1297_10;
  tmp4_12 = L_11 >> 24; 
  #   VUSE <BF_current_21>;
  D.1298_13 = BF_current.P[17];
  L_14 = tmp4_12 ^ D.1298_13;
  D.1299_15 = ptr_9 - 8B;
  #   TMT.6_25 = V_MAY_DEF <TMT.6_23>;
  *D.1299_15 = L_14;
  if (ptr_9 < &BF_current.P[18]) goto <L12>; else goto <L4>;

the store to *D.1299_15 kills BF_current_21, which we don't notice.


-- 

rguenth at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |dberlin at gcc dot gnu dot
                   |                            |org
          Component|rtl-optimization            |tree-optimization
           Keywords|                            |alias


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


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

* [Bug tree-optimization/26587] [4.1/4.2 Regression] strict aliasing incorrectly pre-loads an array element with loops
  2006-03-07  1:47 [Bug rtl-optimization/26587] New: strict aliasing incorrectly pre-loads an array element solar at openwall dot com
                   ` (5 preceding siblings ...)
  2006-03-07 10:39 ` [Bug tree-optimization/26587] " rguenth at gcc dot gnu dot org
@ 2006-03-07 10:41 ` rguenth at gcc dot gnu dot org
  2006-03-07 10:43 ` rguenth at gcc dot gnu dot org
                   ` (6 subsequent siblings)
  13 siblings, 0 replies; 15+ messages in thread
From: rguenth at gcc dot gnu dot org @ 2006-03-07 10:41 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #7 from rguenth at gcc dot gnu dot org  2006-03-07 10:41 -------
The problem is latent on the mainline with -fno-tree-salias.


-- 

rguenth at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
      Known to fail|4.1.0                       |4.1.0 4.2.0
      Known to work|4.2.0 4.0.3                 |4.0.3
            Summary|[4.1 Regression] strict     |[4.1/4.2 Regression] strict
                   |aliasing incorrectly pre-   |aliasing incorrectly pre-
                   |loads an array element with |loads an array element with
                   |loops                       |loops


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


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

* [Bug tree-optimization/26587] [4.1/4.2 Regression] strict aliasing incorrectly pre-loads an array element with loops
  2006-03-07  1:47 [Bug rtl-optimization/26587] New: strict aliasing incorrectly pre-loads an array element solar at openwall dot com
                   ` (6 preceding siblings ...)
  2006-03-07 10:41 ` [Bug tree-optimization/26587] [4.1/4.2 " rguenth at gcc dot gnu dot org
@ 2006-03-07 10:43 ` rguenth at gcc dot gnu dot org
  2006-03-07 11:02 ` rguenth at gcc dot gnu dot org
                   ` (5 subsequent siblings)
  13 siblings, 0 replies; 15+ messages in thread
From: rguenth at gcc dot gnu dot org @ 2006-03-07 10:43 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #8 from rguenth at gcc dot gnu dot org  2006-03-07 10:43 -------
With -O2 -fno-ivopts -fno-tree-vrp -fno-tree-salias -fno-strict-aliasing we
correctly get

<L11>:;

  # BF_current_23 = PHI <BF_current_21(5), BF_current_24(7)>;
  # ptr_3 = PHI <&BF_current.P[0](5), ptr_9(7)>;
  # L_2 = PHI <0(5), L_14(7)>;
<L7>:;
  ptr_9 = ptr_3 + 8B;
  #   VUSE <BF_current_23>;
  D.1541_10 = BF_current.P[0];
  L_11 = L_2 ^ D.1541_10;
  tmp4_12 = L_11 >> 24;
  #   VUSE <BF_current_23>;
  D.1542_13 = BF_current.P[17];
  L_14 = tmp4_12 ^ D.1542_13;
  D.1543_15 = ptr_9 - 8B;
  #   BF_current_24 = V_MAY_DEF <BF_current_23>;
  *D.1543_15 = L_14;
  if (ptr_9 < &BF_current.P[18]) goto <L12>; else goto <L4>;


-- 


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


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

* [Bug tree-optimization/26587] [4.1/4.2 Regression] strict aliasing incorrectly pre-loads an array element with loops
  2006-03-07  1:47 [Bug rtl-optimization/26587] New: strict aliasing incorrectly pre-loads an array element solar at openwall dot com
                   ` (7 preceding siblings ...)
  2006-03-07 10:43 ` rguenth at gcc dot gnu dot org
@ 2006-03-07 11:02 ` rguenth at gcc dot gnu dot org
  2006-03-07 12:20 ` patchapp at dberlin dot org
                   ` (4 subsequent siblings)
  13 siblings, 0 replies; 15+ messages in thread
From: rguenth at gcc dot gnu dot org @ 2006-03-07 11:02 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #9 from rguenth at gcc dot gnu dot org  2006-03-07 11:02 -------
Pointed-to sets for pointers in main

ptr_8, points-to vars: { BF_current }
ptr_3, points-to vars: { BF_current }
ptr_9, points-to vars: { BF_current }
D.1543_15, is dereferenced, points-to anything
D.1544_16, points-to vars: { BF_current }

is wrong because of:

handle_ptr_arith (struct constraint_expr lhs, tree expr)
{
  tree op0, op1;
  struct constraint_expr base, offset;

  if (TREE_CODE (expr) != PLUS_EXPR)
    return false;

and

(gdb) call debug_tree(expr)
 <minus_expr 0x40194360
    type <pointer_type 0x402260b8
        type <integer_type 0x4021df74 BF_word sizes-gimplified public unsigned
SI
            size <integer_cst 0x4018d3f0 constant invariant 32>
            unit size <integer_cst 0x4018d180 constant invariant 4>
            align 32 symtab 0 alias set -1 precision 32 min <integer_cst
0x4018d468 0> max <integer_cst 0x4018d450 4294967295>
            pointer_to_this <pointer_type 0x402260b8>>
        sizes-gimplified unsigned SI size <integer_cst 0x4018d3f0 32> unit size
<integer_cst 0x4018d180 4>
        align 32 symtab 0 alias set -1>

    arg 0 <ssa_name 0x40228e38 type <pointer_type 0x402260b8>
        visited var <var_decl 0x40199210 ptr> def_stmt <modify_expr 0x40194264>
        version 9
        ptr-info 0x4021f740>
    arg 1 <integer_cst 0x402271c8 type <pointer_type 0x402260b8> constant
invariant 8>>

I have a fix.


-- 


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


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

* [Bug tree-optimization/26587] [4.1/4.2 Regression] strict aliasing incorrectly pre-loads an array element with loops
  2006-03-07  1:47 [Bug rtl-optimization/26587] New: strict aliasing incorrectly pre-loads an array element solar at openwall dot com
                   ` (8 preceding siblings ...)
  2006-03-07 11:02 ` rguenth at gcc dot gnu dot org
@ 2006-03-07 12:20 ` patchapp at dberlin dot org
  2006-03-07 14:26 ` rguenth at gcc dot gnu dot org
                   ` (3 subsequent siblings)
  13 siblings, 0 replies; 15+ messages in thread
From: patchapp at dberlin dot org @ 2006-03-07 12:20 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #10 from patchapp at dberlin dot org  2006-03-07 12:20 -------
Subject: Bug number PR tree-optimization/26587

A patch for this bug has been added to the patch tracker.
The mailing list url for the patch is
http://gcc.gnu.org/ml/gcc-patches/2006-03/msg00357.html


-- 


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


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

* [Bug tree-optimization/26587] [4.1/4.2 Regression] strict aliasing incorrectly pre-loads an array element with loops
  2006-03-07  1:47 [Bug rtl-optimization/26587] New: strict aliasing incorrectly pre-loads an array element solar at openwall dot com
                   ` (9 preceding siblings ...)
  2006-03-07 12:20 ` patchapp at dberlin dot org
@ 2006-03-07 14:26 ` rguenth at gcc dot gnu dot org
  2006-03-07 16:23 ` rguenth at gcc dot gnu dot org
                   ` (2 subsequent siblings)
  13 siblings, 0 replies; 15+ messages in thread
From: rguenth at gcc dot gnu dot org @ 2006-03-07 14:26 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #11 from rguenth at gcc dot gnu dot org  2006-03-07 14:26 -------
Patches posted.


-- 

rguenth at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
         AssignedTo|unassigned at gcc dot gnu   |rguenth at gcc dot gnu dot
                   |dot org                     |org
             Status|NEW                         |ASSIGNED
   Last reconfirmed|2006-03-07 02:08:20         |2006-03-07 14:26:19
               date|                            |


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


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

* [Bug tree-optimization/26587] [4.1/4.2 Regression] strict aliasing incorrectly pre-loads an array element with loops
  2006-03-07  1:47 [Bug rtl-optimization/26587] New: strict aliasing incorrectly pre-loads an array element solar at openwall dot com
                   ` (10 preceding siblings ...)
  2006-03-07 14:26 ` rguenth at gcc dot gnu dot org
@ 2006-03-07 16:23 ` rguenth at gcc dot gnu dot org
  2006-03-07 16:26 ` rguenth at gcc dot gnu dot org
  2006-03-07 16:49 ` rguenth at gcc dot gnu dot org
  13 siblings, 0 replies; 15+ messages in thread
From: rguenth at gcc dot gnu dot org @ 2006-03-07 16:23 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #12 from rguenth at gcc dot gnu dot org  2006-03-07 16:23 -------
Subject: Bug 26587

Author: rguenth
Date: Tue Mar  7 16:23:38 2006
New Revision: 111808

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=111808
Log:
2006-03-07  Richard Guenther  <rguenther@suse.de>

        PR tree-optimization/26587
        * tree-ssa-structalias.c (handle_ptr_arith): Handle MINUS_EXPR.

        * gcc.dg/torture/pr26587.c: New testcase.

Added:
    trunk/gcc/testsuite/gcc.dg/torture/pr26587.c
Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/testsuite/ChangeLog
    trunk/gcc/tree-ssa-structalias.c


-- 


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


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

* [Bug tree-optimization/26587] [4.1/4.2 Regression] strict aliasing incorrectly pre-loads an array element with loops
  2006-03-07  1:47 [Bug rtl-optimization/26587] New: strict aliasing incorrectly pre-loads an array element solar at openwall dot com
                   ` (11 preceding siblings ...)
  2006-03-07 16:23 ` rguenth at gcc dot gnu dot org
@ 2006-03-07 16:26 ` rguenth at gcc dot gnu dot org
  2006-03-07 16:49 ` rguenth at gcc dot gnu dot org
  13 siblings, 0 replies; 15+ messages in thread
From: rguenth at gcc dot gnu dot org @ 2006-03-07 16:26 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #13 from rguenth at gcc dot gnu dot org  2006-03-07 16:26 -------
Subject: Bug 26587

Author: rguenth
Date: Tue Mar  7 16:26:14 2006
New Revision: 111809

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=111809
Log:
2006-03-07  Richard Guenther  <rguenther@suse.de>

        PR tree-optimization/26587
        * tree-ssa-structalias.c (handle_ptr_arith): Handle MINUS_EXPR.

        * gcc.dg/torture/pr26587.c: New testcase.

Added:
    branches/gcc-4_1-branch/gcc/testsuite/gcc.dg/torture/pr26587.c
Modified:
    branches/gcc-4_1-branch/gcc/ChangeLog
    branches/gcc-4_1-branch/gcc/testsuite/ChangeLog
    branches/gcc-4_1-branch/gcc/tree-ssa-structalias.c


-- 


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


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

* [Bug tree-optimization/26587] [4.1/4.2 Regression] strict aliasing incorrectly pre-loads an array element with loops
  2006-03-07  1:47 [Bug rtl-optimization/26587] New: strict aliasing incorrectly pre-loads an array element solar at openwall dot com
                   ` (12 preceding siblings ...)
  2006-03-07 16:26 ` rguenth at gcc dot gnu dot org
@ 2006-03-07 16:49 ` rguenth at gcc dot gnu dot org
  13 siblings, 0 replies; 15+ messages in thread
From: rguenth at gcc dot gnu dot org @ 2006-03-07 16:49 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #14 from rguenth at gcc dot gnu dot org  2006-03-07 16:49 -------
Fixed.


-- 

rguenth at gcc dot gnu dot org changed:

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


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


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

end of thread, other threads:[~2006-03-07 16:49 UTC | newest]

Thread overview: 15+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2006-03-07  1:47 [Bug rtl-optimization/26587] New: strict aliasing incorrectly pre-loads an array element solar at openwall dot com
2006-03-07  1:50 ` [Bug rtl-optimization/26587] " solar at openwall dot com
2006-03-07  2:03 ` pinskia at gcc dot gnu dot org
2006-03-07  2:08 ` [Bug rtl-optimization/26587] [4.1 Regression] strict aliasing incorrectly pre-loads an array element with loops pinskia at gcc dot gnu dot org
2006-03-07 10:02 ` rguenth at gcc dot gnu dot org
2006-03-07 10:12 ` rguenth at gcc dot gnu dot org
2006-03-07 10:39 ` [Bug tree-optimization/26587] " rguenth at gcc dot gnu dot org
2006-03-07 10:41 ` [Bug tree-optimization/26587] [4.1/4.2 " rguenth at gcc dot gnu dot org
2006-03-07 10:43 ` rguenth at gcc dot gnu dot org
2006-03-07 11:02 ` rguenth at gcc dot gnu dot org
2006-03-07 12:20 ` patchapp at dberlin dot org
2006-03-07 14:26 ` rguenth at gcc dot gnu dot org
2006-03-07 16:23 ` rguenth at gcc dot gnu dot org
2006-03-07 16:26 ` rguenth at gcc dot gnu dot org
2006-03-07 16:49 ` rguenth 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).