http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55820
--- Comment #1 from Andrew Pinski <pinskia at gcc dot gnu.org> 2012-12-28 04:07:14 UTC --- yes this code is undefined at compile time. GCC used to reject #define in a macro usage but it was decided we will accept that. I can find the old bugs if needed.