[PATCH] Fix PR42898

Eric Botcazou ebotcazou@adacore.com
Sun Jan 31 18:23:00 GMT 2010


> I don't know about the extra local temporary - is that for a
> testcase that is for your patch?  If not then we do this
> on purpose iff the initializer is not constant and not large
> enough for not move_by_pieces (you'll see we create better
> code than going the constant pool path for the testcase).

It's for:

struct hardware {
  int parm1:8;
  int :4;
  int parm2:4;
  int parm3:15;
  int parm4:1;
};

const struct hardware h = { .parm1=42, .parm2=13, .parm3=11850, .parm4=1 };

void f2(volatile struct hardware *ptr)
{
  *ptr=h;
}

but we ICE on the 4.3 branch after your patch:

eric@atlantis:~/build/gcc-4_3-branch/native32> gcc/xgcc -Bgcc -S t.c
t.c: In function 'f2':
t.c:13: internal compiler error: in gimplify_expr, at gimplify.c:6224
Please submit a full bug report,
with preprocessed source if appropriate.
See <http://gcc.gnu.org/bugs.html> for instructions.

-- 
Eric Botcazou



More information about the Gcc-patches mailing list