------- Comment #2 from rguenth at gcc dot gnu dot org 2010-01-29 22:41 -------
Yep:
f2 ()
{
volatile struct hardware * ptr;
struct hardware set;
ptr = 287454020B;
set = {};
set.parm1 = 42;
set.parm2 = -3;
set.parm3 = 11850;
set.parm4 = -1;
*ptr = set;
}
f1 ()
{
volatile struct hardware * ptr;
ptr = 287454020B;
*ptr = {};
ptr->parm1 = 42;
ptr->parm2 = -3;
ptr->parm3 = 11850;
ptr->parm4 = -1;
}
we need to gimplify f1 exactly the same as f2, using a temporary.
--
rguenth at gcc dot gnu dot org changed:
What |Removed |Added
----------------------------------------------------------------------------
Component|c |middle-end
Summary|[4.3/4.4/4.5 Regression] |[4.3/4.4/4.5 Regression]
|volatile structures and |volatile structures and
|compound literals |compound literal
| |initializers
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42898