--- Comment #26 from rguenth at gcc dot gnu dot org 2010-09-16 11:06
---
Subject: Bug 45623
Author: rguenth
Date: Thu Sep 16 11:06:25 2010
New Revision: 164333
URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=164333
Log:
2010-09-16 Richard Guenther
PR tree-optimizatio
--- Comment #25 from mh+gcc at glandium dot org 2010-09-15 14:01 ---
Oh, I was trying with -O2, yes, it works with -O1 -fno-tree-pta. Let me try on
the original code, too.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45623
--- Comment #24 from rguenth at gcc dot gnu dot org 2010-09-15 13:59
---
Created an attachment (id=21801)
--> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=21801&action=view)
patch
I am testing this patch (for 4.5 branch).
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45623
--- Comment #23 from rguenther at suse dot de 2010-09-15 13:56 ---
Subject: Re: [4.5/4.6 Regression] GCC 4.5.[01]
breaks our ffi on Linux64. ABI break?
On Wed, 15 Sep 2010, mh+gcc at glandium dot org wrote:
> --- Comment #22 from mh+gcc at glandium dot org 2010-09-15 13:52 -
--- Comment #22 from mh+gcc at glandium dot org 2010-09-15 13:52 ---
(In reply to comment #21)
> For the original code? Then your reduced testcase is different from the
> original problem.
It doesn't work for the reduced testcase here, with gcc 4.5.1
--
http://gcc.gnu.org/bugzilla
--- Comment #21 from rguenth at gcc dot gnu dot org 2010-09-15 13:50
---
(In reply to comment #20)
> (In reply to comment #19)
> > Another workaround is to use -fno-tree-pta.
>
> Doesn't work here.
For the original code? Then your reduced testcase is different from the
original probl
--- Comment #20 from mh+gcc at glandium dot org 2010-09-15 13:41 ---
(In reply to comment #19)
> Another workaround is to use -fno-tree-pta.
Doesn't work here.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45623
--- Comment #19 from rguenth at gcc dot gnu dot org 2010-09-15 13:24
---
Another workaround is to use -fno-tree-pta.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45623
--- Comment #18 from mh+gcc at glandium dot org 2010-09-15 13:14 ---
(In reply to comment #17)
> Thus, as a workaround you should make sure the asBits field matches
> pointer-size (so for example use uintptr_t isntead of uint64_t).
which is not possible in the original code, as the unio
--- Comment #17 from rguenth at gcc dot gnu dot org 2010-09-15 13:03
---
points-to analysis does not honor GCCs type-punning through union extension
(it works on x86_64 because ptr and asBits match in size and thus SRA
cleans the code up before pointer-analysis). So PTA sees
ss1.0_1
--- Comment #16 from mh+gcc at glandium dot org 2010-09-15 12:52 ---
The real code where this gets problematic:
http://mxr.mozilla.org/mozilla-central/source/js/src/ctypes/CTypes.cpp#5615
The function it calls:
http://mxr.mozilla.org/mozilla-central/source/js/src/ctypes/CTypes.cpp#5542
--- Comment #15 from mh+gcc at glandium dot org 2010-09-15 12:47 ---
Note that the original code doesn't use char *. I used char * to make it easily
visible with a printf. Actually, just writing
void foo(jsval_layout l, void *s2) {
jsval_layout m;
m.asBits = l.asBits;
void *
--- Comment #14 from rguenth at gcc dot gnu dot org 2010-09-15 12:31
---
You are accessing a pointer of type char *s1 via an lvalue of type void *
(*data). Or speaking in C++, you are accessing an object of dynamic type
void * (stored to via *data) by an lvalue of type char * (s1).
Th
13 matches
Mail list logo