------- Comment #6 from pinskia at gcc dot gnu dot org 2008-06-25 20:59 -------
D.2148_2 = (struct D[7] *) D.2168_1; D.2149_3 = D.2148_2 + 8; D.2169_4 = (long unsigned int *) D.2149_3; D.2170_5 = D.2169_4 + -8; That seems wrong. Why are we going from a struct D[7] * to a long unsigned int * ? In fact I think this is a bug in the C++ front-end really. It is producing weird types with respect of operator new[] in the first place. the first 8 bytes is the size but casts the resulting of operator new first to struct D[7] * and then does an add, that seems wrong. -- pinskia at gcc dot gnu dot org changed: What |Removed |Added ---------------------------------------------------------------------------- Component|middle-end |c++ http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36633