http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55695
--- Comment #3 from Andrew Pinski <pinskia at gcc dot gnu.org> 2012-12-14 21:37:45 UTC --- I think one of the typeof is being chosen as a void* and then we take another typeof of the deferenced version of that. This is what is causing the "void value not ignored as it ought to be".