[Bug middle-end/29272] [4.2 Regression] memcpy optimization causes wrong-code

2007-06-26 Thread jakub at gcc dot gnu dot org


--- Comment #18 from jakub at gcc dot gnu dot org  2007-06-26 11:47 ---
Subject: Bug 29272

Author: jakub
Date: Tue Jun 26 11:47:19 2007
New Revision: 126023

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=126023
Log:
PR middle-end/29272
* builtins.c (fold_builtin_memset, fold_builtin_memory_op): Restrict
single entry optimization to variables and components thereof.

* gcc.c-torture/execute/20060930-2.c: New test.

Added:
   
branches/redhat/gcc-4_1-branch/gcc/testsuite/gcc.c-torture/execute/20060930-2.c
Modified:
branches/redhat/gcc-4_1-branch/gcc/ChangeLog
branches/redhat/gcc-4_1-branch/gcc/builtins.c
branches/redhat/gcc-4_1-branch/gcc/testsuite/ChangeLog


-- 


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



[Bug middle-end/29272] [4.2 Regression] memcpy optimization causes wrong-code

2006-12-08 Thread cvs-commit at developer dot classpath dot org


--- Comment #17 from cvs-commit at developer dot classpath dot org  
2006-12-08 10:32 ---
Subject: Bug 29272

CVSROOT:/cvsroot/classpath
Module name:classpath
Branch: classpath-0_93-branch
Changes by: Mark Wielaard 06/12/08 10:31:50

Modified files:
.  : ChangeLog 
gnu/xml/dom: DomAttr.java DomNode.java 
gnu/xml/stream : SAXParser.java XMLStreamWriterImpl.java 
javax/xml/parsers: DocumentBuilderFactory.java 
javax/xml/validation: SchemaFactory.java 

Log message:
2006-12-06  Ben Konrath  <[EMAIL PROTECTED]>

   Fixes PR 29853.
   * gnu/xml/dom/DomAttr.java: Don't report mutation if oldValue
and
   newValue are the same.
   * gnu/xml/dom/DomNode.java: Set parent if null during mutation.

2006-12-06  Chris Burdess  <[EMAIL PROTECTED]>

   Fixes PR 29272.
   * javax/xml/parsers/DocumentBuilderFactory.java: Fix broken
Javadoc.
   * gnu/xml/stream/SAXParser.java: Fix file descriptor leak.

2006-12-06  Chris Burdess  <[EMAIL PROTECTED]>

   Fixes PR 29264.
   * gnu/xml/stream/XMLStreamWriterImpl.java: Allow arbitrary text
in
   writeDTD method.

2006-12-056  Chris Burdess  <[EMAIL PROTECTED]>

   Fixes PR 28816.
   * javax/xml/validation/SchemaFactory.java: Use correct algorithm
to
   discover schema factory implementation class.

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/classpath/ChangeLog?cvsroot=classpath&only_with_tag=classpath-0_93-branch&r1=1.8897.2.14&r2=1.8897.2.15
http://cvs.savannah.gnu.org/viewcvs/classpath/gnu/xml/dom/DomAttr.java?cvsroot=classpath&only_with_tag=classpath-0_93-branch&r1=1.3&r2=1.3.12.1
http://cvs.savannah.gnu.org/viewcvs/classpath/gnu/xml/dom/DomNode.java?cvsroot=classpath&only_with_tag=classpath-0_93-branch&r1=1.16&r2=1.16.2.1
http://cvs.savannah.gnu.org/viewcvs/classpath/gnu/xml/stream/SAXParser.java?cvsroot=classpath&only_with_tag=classpath-0_93-branch&r1=1.21&r2=1.21.4.1
http://cvs.savannah.gnu.org/viewcvs/classpath/gnu/xml/stream/XMLStreamWriterImpl.java?cvsroot=classpath&only_with_tag=classpath-0_93-branch&r1=1.5&r2=1.5.12.1
http://cvs.savannah.gnu.org/viewcvs/classpath/javax/xml/parsers/DocumentBuilderFactory.java?cvsroot=classpath&only_with_tag=classpath-0_93-branch&r1=1.5&r2=1.5.10.1
http://cvs.savannah.gnu.org/viewcvs/classpath/javax/xml/validation/SchemaFactory.java?cvsroot=classpath&only_with_tag=classpath-0_93-branch&r1=1.5&r2=1.5.6.1


-- 


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



[Bug middle-end/29272] [4.2 Regression] memcpy optimization causes wrong-code

2006-12-08 Thread cvs-commit at developer dot classpath dot org


--- Comment #16 from cvs-commit at developer dot classpath dot org  
2006-12-08 10:30 ---
Subject: Bug 29272

CVSROOT:/cvsroot/classpath
Module name:classpath
Branch: generics-branch
Changes by: Mark Wielaard 06/12/08 10:30:10

Modified files:
.  : ChangeLog 
gnu/xml/dom: DomAttr.java DomNode.java 
gnu/xml/stream : SAXParser.java XMLStreamWriterImpl.java 
javax/xml/parsers: DocumentBuilderFactory.java 
javax/xml/validation: SchemaFactory.java 

Log message:
2006-12-06  Ben Konrath  <[EMAIL PROTECTED]>

   Fixes PR 29853.
   * gnu/xml/dom/DomAttr.java: Don't report mutation if oldValue
and
   newValue are the same.
   * gnu/xml/dom/DomNode.java: Set parent if null during mutation.

2006-12-06  Chris Burdess  <[EMAIL PROTECTED]>

   Fixes PR 29272.
   * javax/xml/parsers/DocumentBuilderFactory.java: Fix broken
Javadoc.
   * gnu/xml/stream/SAXParser.java: Fix file descriptor leak.

2006-12-06  Chris Burdess  <[EMAIL PROTECTED]>

   Fixes PR 29264.
   * gnu/xml/stream/XMLStreamWriterImpl.java: Allow arbitrary text
in
   writeDTD method.

2006-12-056  Chris Burdess  <[EMAIL PROTECTED]>

   Fixes PR 28816.
   * javax/xml/validation/SchemaFactory.java: Use correct algorithm
to
   discover schema factory implementation class.

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/classpath/ChangeLog?cvsroot=classpath&only_with_tag=generics-branch&r1=1.2386.2.358&r2=1.2386.2.359
http://cvs.savannah.gnu.org/viewcvs/classpath/gnu/xml/dom/DomAttr.java?cvsroot=classpath&only_with_tag=generics-branch&r1=1.1.2.3&r2=1.1.2.4
http://cvs.savannah.gnu.org/viewcvs/classpath/gnu/xml/dom/DomNode.java?cvsroot=classpath&only_with_tag=generics-branch&r1=1.1.2.10&r2=1.1.2.11
http://cvs.savannah.gnu.org/viewcvs/classpath/gnu/xml/stream/SAXParser.java?cvsroot=classpath&only_with_tag=generics-branch&r1=1.14.2.4&r2=1.14.2.5
http://cvs.savannah.gnu.org/viewcvs/classpath/gnu/xml/stream/XMLStreamWriterImpl.java?cvsroot=classpath&only_with_tag=generics-branch&r1=1.1.2.4&r2=1.1.2.5
http://cvs.savannah.gnu.org/viewcvs/classpath/javax/xml/parsers/DocumentBuilderFactory.java?cvsroot=classpath&only_with_tag=generics-branch&r1=1.1.2.5&r2=1.1.2.6
http://cvs.savannah.gnu.org/viewcvs/classpath/javax/xml/validation/SchemaFactory.java?cvsroot=classpath&only_with_tag=generics-branch&r1=1.1.2.5&r2=1.1.2.6


-- 


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



[Bug middle-end/29272] [4.2 Regression] memcpy optimization causes wrong-code

2006-12-06 Thread cvs-commit at developer dot classpath dot org


--- Comment #15 from cvs-commit at developer dot classpath dot org  
2006-12-06 11:37 ---
Subject: Bug 29272

CVSROOT:/cvsroot/classpath
Module name:classpath
Changes by: Chris Burdess  06/12/06 11:36:42

Modified files:
.  : ChangeLog 
gnu/xml/stream : SAXParser.java 
javax/xml/parsers: DocumentBuilderFactory.java 

Log message:
2006-12-06  Chris Burdess  <[EMAIL PROTECTED]>

Fixes PR 29272.
* javax/xml/parsers/DocumentBuilderFactory.java: Fix broken
Javadoc.
* gnu/xml/stream/SAXParser.java: Fix file descriptor leak.

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/classpath/ChangeLog?cvsroot=classpath&r1=1.8928&r2=1.8929
http://cvs.savannah.gnu.org/viewcvs/classpath/gnu/xml/stream/SAXParser.java?cvsroot=classpath&r1=1.21&r2=1.22
http://cvs.savannah.gnu.org/viewcvs/classpath/javax/xml/parsers/DocumentBuilderFactory.java?cvsroot=classpath&r1=1.5&r2=1.6


-- 


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



[Bug middle-end/29272] [4.2 Regression] memcpy optimization causes wrong-code

2006-10-11 Thread rguenth at gcc dot gnu dot org


--- Comment #14 from rguenth at gcc dot gnu dot org  2006-10-11 22:04 
---
This is fixed now.  Or was invalid.


-- 

rguenth at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||FIXED


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



[Bug middle-end/29272] [4.2 Regression] memcpy optimization causes wrong-code

2006-10-10 Thread jakub at gcc dot gnu dot org


--- Comment #13 from jakub at gcc dot gnu dot org  2006-10-10 09:47 ---
Subject: Bug 29272

Author: jakub
Date: Tue Oct 10 09:46:59 2006
New Revision: 117599

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=117599
Log:
PR middle-end/29272
* builtins.c (var_decl_component_p): New function.
(fold_builtin_memset, fold_builtin_memory_op): Restrict
single entry optimization to variables and components thereof.

* gcc.c-torture/execute/20060930-2.c: New test.

Added:
trunk/gcc/testsuite/gcc.c-torture/execute/20060930-2.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/builtins.c
trunk/gcc/testsuite/ChangeLog


-- 


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



[Bug middle-end/29272] [4.2 Regression] memcpy optimization causes wrong-code

2006-10-01 Thread mmitchel at gcc dot gnu dot org


-- 

mmitchel at gcc dot gnu dot org changed:

   What|Removed |Added

   Priority|P3  |P1


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



[Bug middle-end/29272] [4.2 Regression] memcpy optimization causes wrong-code

2006-10-01 Thread jakub at gcc dot gnu dot org


--- Comment #12 from jakub at gcc dot gnu dot org  2006-10-01 22:35 ---
Wrt #8, can you come up with a C++ testcase where
using var = x; is invalid, but using memcpy (&var, &x, sizeof (var)); (where
sizeof (var) == sizeof (x)) makes it valid C++ (from aliasing point of view)?


-- 


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



[Bug middle-end/29272] [4.2 Regression] memcpy optimization causes wrong-code

2006-09-30 Thread jakub at gcc dot gnu dot org


--- Comment #11 from jakub at gcc dot gnu dot org  2006-09-30 11:49 ---
The primary advantage of the single entry optimization is actually that
at tree level we can find out if something is only addressable because of the
memcpy/memset/mempcpy/memmove and not for other reasons.  So, creating
a pointer to the object, adding may_alias attribute to the type and
dereferencing
it doesn't buy us much, because it would still be addressable.  So, either
we have a way to mark the VAR_DECL (or component thereof) read resp. write
with alias set 0, or we need the patch I posted, possibly with additional
check for C++/ObjC++ and don't do the optimization at all for C++.


-- 


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



[Bug middle-end/29272] [4.2 Regression] memcpy optimization causes wrong-code

2006-09-30 Thread rguenther at suse dot de


--- Comment #10 from rguenther at suse dot de  2006-09-30 11:47 ---
Subject: Re:  [4.2 Regression] memcpy optimization
 causes wrong-code

On Sat, 29 Sep 2006, mrs at apple dot com wrote:

> --- Comment #8 from mrs at apple dot com  2006-09-29 23:15 ---
> > If it is a VAR_DECL, then I believe the optimization is always safe
> 
> Not in C++.

As safe as using memcpy, which does not add any semantics to an
access using the VAR_DECL.  So I believe this is safe even for C++.


-- 


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



[Bug middle-end/29272] [4.2 Regression] memcpy optimization causes wrong-code

2006-09-30 Thread rguenther at suse dot de


--- Comment #9 from rguenther at suse dot de  2006-09-30 11:46 ---
Subject: Re:  [4.2 Regression] memcpy optimization
 causes wrong-code

On Sat, 29 Sep 2006, pinskia at physics dot uc dot edu wrote:

> --- Comment #7 from pinskia at physics dot uc dot edu  2006-09-29 22:13 
> ---
> Subject: Re:  [4.2 Regression] memcpy optimization causes wrong-code
> > --- Comment #6 from jakub at gcc dot gnu dot org  2006-09-29 22:04 
> > ---
> > Is:
> > extern void abort (void);
> > 
> > struct S { struct S *s; } s;
> > struct T { struct T *t; } t;
> > 
> > static inline void
> > foo (void *s)
> > {
> >   struct T *p = s;
> >   __builtin_memcpy (&p->t, &t.t, sizeof (t.t));
> 
> I think the problem is really is &p->t include an access or not?
> I know if p is NULL, this is undefined as &p->t is now have a NULL pointer
> access but does that include using memcpy?

If you write it as memcpy (p, &t, ...) then it is ok.  Now I think
by applying common sense 6.5.3.2/3 can be applied to &p->t, too.


-- 


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



[Bug middle-end/29272] [4.2 Regression] memcpy optimization causes wrong-code

2006-09-29 Thread mrs at apple dot com


--- Comment #8 from mrs at apple dot com  2006-09-29 23:15 ---
> If it is a VAR_DECL, then I believe the optimization is always safe

Not in C++.


-- 


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



[Bug middle-end/29272] [4.2 Regression] memcpy optimization causes wrong-code

2006-09-29 Thread pinskia at physics dot uc dot edu


--- Comment #7 from pinskia at physics dot uc dot edu  2006-09-29 22:13 
---
Subject: Re:  [4.2 Regression] memcpy optimization causes wrong-code

> 
> 
> 
> --- Comment #6 from jakub at gcc dot gnu dot org  2006-09-29 22:04 ---
> Is:
> extern void abort (void);
> 
> struct S { struct S *s; } s;
> struct T { struct T *t; } t;
> 
> static inline void
> foo (void *s)
> {
>   struct T *p = s;
>   __builtin_memcpy (&p->t, &t.t, sizeof (t.t));

I think the problem is really is &p->t include an access or not?
I know if p is NULL, this is undefined as &p->t is now have a NULL pointer
access but does that include using memcpy?

-- Pinski


-- 


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



Re: [Bug middle-end/29272] [4.2 Regression] memcpy optimization causes wrong-code

2006-09-29 Thread Andrew Pinski
> 
> 
> 
> --- Comment #6 from jakub at gcc dot gnu dot org  2006-09-29 22:04 ---
> Is:
> extern void abort (void);
> 
> struct S { struct S *s; } s;
> struct T { struct T *t; } t;
> 
> static inline void
> foo (void *s)
> {
>   struct T *p = s;
>   __builtin_memcpy (&p->t, &t.t, sizeof (t.t));

I think the problem is really is &p->t include an access or not?
I know if p is NULL, this is undefined as &p->t is now have a NULL pointer
access but does that include using memcpy?

-- Pinski


[Bug middle-end/29272] [4.2 Regression] memcpy optimization causes wrong-code

2006-09-29 Thread jakub at gcc dot gnu dot org


--- Comment #6 from jakub at gcc dot gnu dot org  2006-09-29 22:04 ---
Is:
extern void abort (void);

struct S { struct S *s; } s;
struct T { struct T *t; } t;

static inline void
foo (void *s)
{
  struct T *p = s;
  __builtin_memcpy (&p->t, &t.t, sizeof (t.t));
}

void *
__attribute__((noinline))
bar (void *p, struct S *q)
{
  q->s = &s;
  foo (p);
  return q->s;
}

int
main (void)
{
  t.t = &t;
  if (bar (&s, &s) != (void *) &t)
abort ();
  return 0;
}

valid?  I'd say yes, we either access s.s using its declared (== effective)
type,
or through memcpy (which is supposed tobe a char array access and therefore
ok wrt. aliasing).


-- 


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



[Bug middle-end/29272] [4.2 Regression] memcpy optimization causes wrong-code

2006-09-29 Thread pinskia at gcc dot gnu dot org


--- Comment #5 from pinskia at gcc dot gnu dot org  2006-09-29 17:30 ---
I think we can declare this as invalid code for C and unkown for C++.

For C++, inplacement new is supposed to "fix" the problem with different types
as C++ defines aliasing based on the dynamic type but we get a different bug
with that being PR 29286.


-- 


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



[Bug middle-end/29272] [4.2 Regression] memcpy optimization causes wrong-code

2006-09-29 Thread rguenth at gcc dot gnu dot org


--- Comment #4 from rguenth at gcc dot gnu dot org  2006-09-29 09:14 ---
Here's an executable testcase which is miscompiled at the tree-level.

extern void abort(void);
struct Foo {
  int a;
  int b;
};
struct Node;
struct Node {
  struct Node *next;
};
struct Node *pool;
void grow (void)
{
  char *mem = __builtin_malloc (4096);
  struct Node *node = (struct Node *)mem;
  struct Foo *foo;
  __builtin_memcpy (&node->next, &pool, sizeof(struct Node*));
  pool = node;
}
static inline void *alloc_one (void)
{
  struct Node *node = pool;
  __builtin_memcpy (&pool, &node->next, sizeof(struct Node*));
  return node;
}
static inline void dealloc_one (void *p)
{
  struct Node *node = p;
  __builtin_memcpy (&node->next, &pool, sizeof(struct Node*));
  pool = node;
}
int main()
{
  grow();
  struct Foo* foo = alloc_one();
  foo->a = 0;
  foo->b = -1;
  dealloc_one (foo);
  if (foo->b == -1)
abort ();
  return 0;
}


-- 


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



[Bug middle-end/29272] [4.2 Regression] memcpy optimization causes wrong-code

2006-09-28 Thread pinskia at gcc dot gnu dot org


-- 

pinskia at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
 Ever Confirmed|0   |1
   Last reconfirmed|-00-00 00:00:00 |2006-09-29 04:40:41
   date||
   Target Milestone|--- |4.2.0


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



[Bug middle-end/29272] [4.2 Regression] memcpy optimization causes wrong-code

2006-09-28 Thread dnovillo at gcc dot gnu dot org


--- Comment #3 from dnovillo at gcc dot gnu dot org  2006-09-28 18:32 
---

Excerpts from IRC session with jakub discussing this:

13:28   1grow ();
13:28   2node = pool;
13:28   3D.1928 = node->next;
13:28   4pool = D.1928;
13:28   5foo = (struct Foo *) node;
13:28   6foo->a = 0;
13:28   7foo->b = -1;
13:28   8node = (struct Node *) foo;   <- redundant. node ==
foo already.
13:28   9node->next = D.1928;  <- redundant.
node->next == D.1928 already
13:28  10pool = node;  <- redundant. node ==
pool already.
13:28  11return foo->a;
13:33  line 9 is not redundant, because node->next occupies the same
memory as foo->a and foo->b
13:34  I think we have 2 options with this optimization
13:35  1) for each memcpy etc. operand, look through all handled
components and if it is an actual VAR_DECL, we can surely optimize it, with the
native alias set
13:36  but if it is a pointer, we can't be sure
13:37  now, either we figure out some way how to express that operation
in an alias friendly way if it is a pointer, or we just bail and don't optimize
13:37  but, my point was that i don't see where the RTL optimizers
may be screwing up.  what's the exact operation that they remove that they
shouldn't have?
13:37  it all looks removable to me.
13:39  RTL optimizers remove the node->next = D.1928 line
13:40  which means 1) pool->next is in the end 0 rather than old
pool->next
13:40  and 2) 0 is returned rather than (int) pool->next
13:40  but D.1928 and node->next have the same value according to the
tree dump.  or am i misreading something?
14:03  foo == node, so foo->a and node->next occupy the same memory
14:03  oh, crap.
14:03  and eventhough those 2 have aliasing incompatible types, the use
of memcpy makes it ok
14:03  i had missed that.
14:04  guess I'll now write just a quick patch to only do it for
VAR_DECLs and components thereof
14:05  so that the bug is fixed and we can then keep discussing how even
pointers can be safely optimized
14:05  so, going back to not apply this on pointers then?
14:05  yeah, for now that would be the safe approach.
14:10/* If var is a VAR_DECL or a component thereof,
14:10   we can use its alias set, otherwise we'd need to make
14:10   sure we go through alias set 0.  */
14:10inner = srcvar;
14:10while (handled_component_p (inner))
14:10  inner = TREE_OPERAND (inner, 0);
14:10if (TREE_CODE (inner) != VAR_DECL)
14:10  return 0;
14:11  or should I use SSA_VAR_P (inner) instead?
14:12  I guess at least PARM_DECL or RESULT_DECL would be ok, not sure
about SSA names
14:22  the reason we don't screw up in the trees is the presence of
points-to information, most likely.  i got tricked because i wasn't following
who was pointing to who.
14:22  the store foo->a changes node->next.
14:23  bah.
14:23  RTL misses that because the stores have different alias sets.
14:23  the transformation we do on trees is invalid for RTL because
we don't keep points-to info in RTL, only type info.
14:23  the Real Fix would tag the stores so that gimple->RTL changes
the alias sets.
14:24  something along the lines of what you suggest may work.
14:26  yeah, now to find a way to force the alias set...


-- 

dnovillo at gcc dot gnu dot org changed:

   What|Removed |Added

   Target Milestone|4.2.0   |---


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



[Bug middle-end/29272] [4.2 Regression] memcpy optimization causes wrong-code

2006-09-28 Thread jakub at gcc dot gnu dot org


--- Comment #2 from jakub at gcc dot gnu dot org  2006-09-28 18:17 ---
Created an attachment (id=12352)
 --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=12352&action=view)
gcc42-pr29272.patch

Untested patch to just bail for non-vars.


-- 


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



[Bug middle-end/29272] [4.2 Regression] memcpy optimization causes wrong-code

2006-09-28 Thread jakub at gcc dot gnu dot org


--- Comment #1 from jakub at gcc dot gnu dot org  2006-09-28 17:57 ---
I think after we want to look through handled_component_p's of destvar/srcvar
(in fold_builtin_memory_op) resp. var (in fold_builtin_memset) and see if
inside is a VAR_DECL or not.  If it is a VAR_DECL, then I believe the
optimization is always safe, if it is INDIRECT_REF of a pointer, then it would
be only safe if we can make the read resp. write use forcibly alias set 0.
If we e.g. made a copy of the pointer and set DECL_POINTER_ALIAS_SET on it,
would that work and not be optimized out?


-- 

jakub at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||rth at gcc dot gnu dot org,
   ||dnovillo at redhat dot com


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



[Bug middle-end/29272] [4.2 Regression] memcpy optimization causes wrong-code

2006-09-28 Thread pinskia at gcc dot gnu dot org


-- 

pinskia at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||pinskia at gcc dot gnu dot
   ||org
   Target Milestone|--- |4.2.0


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