--- Comment #11 from sje at cup dot hp dot com 2008-09-10 21:22 ---
Created an attachment (id=16288)
-- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=16288action=view)
Smaller test case
Here is a smaller test case cut down from GCC sources.
--
--- Comment #6 from rguenth at gcc dot gnu dot org 2008-09-09 07:31 ---
Can you attach preprocessed source so I can reproduce this with a cross?
Thanks.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37380
--- Comment #7 from dave at hiauly1 dot hia dot nrc dot ca 2008-09-09
16:30 ---
Subject: Re: [4.4 Regression]
../../gcc/libcpp/charset.c:1103: error: 'cvt.77.width' is used
uninitialized in this function
Can you attach preprocessed source so I can reproduce this with
--- Comment #9 from rguenth at gcc dot gnu dot org 2008-09-09 16:56 ---
The key to the problem seems to be a structure passed by value where the
target passes it as pointer and the struct is callee-copied. This gimplifies
to the correct
cvt.64 ={v} cvt;
D.6054_4 = cvt.64.width;
--- Comment #10 from rguenth at gcc dot gnu dot org 2008-09-09 17:18
---
And the reason for that is that re-gimplifying cvt.width hits
gimplify_var_or_parm_decl which will substitute cvt with its
DECL_VALUE_EXPR which is cvt.64. This is - unfortunate, because
we cannot easily fix
--- Comment #4 from rguenth at gcc dot gnu dot org 2008-09-08 09:56 ---
I don't see how SRA can affect 004.gimple output, but the gimplification looks
wrong. For
size_t width = cvt.width;
you should see
D.6101 = cvt.width;
width = (size_t) D.6101;
--
--- Comment #5 from sje at cup dot hp dot com 2008-09-08 21:47 ---
I wonder if the problem is the new call to force_gimple_operand. We now have:
src = force_gimple_operand (src, ..)
and then later we use src in the call to gimple_build_assign. I think the call
to
--
andreast at gcc dot gnu dot org changed:
What|Removed |Added
Status|UNCONFIRMED |NEW
Ever Confirmed|0 |1
Last
--
pinskia at gcc dot gnu dot org changed:
What|Removed |Added
CC||pinskia at gcc dot gnu dot
|