------- Comment #3 from pinskia at gcc dot gnu dot org 2008-10-14 21:59 ------- There are two aliasing violations here. The first is what Richard mentioned and the second is also in foo, there is a load from p via long* and also a store via void*. That is where the issue comes down to here and not the other one but both are undefined code .
-- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37824