--- 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_m
--- 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:
.
--- 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:
.
--- 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/
--- 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
---
--- 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_compo
--
mmitchel at gcc dot gnu dot org changed:
What|Removed |Added
Priority|P3 |P1
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29272
--- 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
--- 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, creat
--- 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, th
--- 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
> ---
--- 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
--- 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 { st
>
>
>
> --- 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.
--- 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__((n
--- 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 dif
--- 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)
--
pinskia at gcc dot gnu dot org changed:
What|Removed |Added
Status|UNCONFIRMED |NEW
Ever Confirmed|0 |1
Last reconfi
--- 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 F
--- 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
--- 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
--
pinskia at gcc dot gnu dot org changed:
What|Removed |Added
CC||pinskia at gcc dot gnu dot
|
22 matches
Mail list logo