------- 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

Reply via email to