------- Additional Comments From pinskia at gcc dot gnu dot org 2005-05-10 14:51 ------- (In reply to comment #4) > void foo1(void* ptr) > { > ((struct A*)ptr)->a = 0; > }
Because you just violated C aliasing. This is unlike C++ where upcasting is okay. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21407