The expansion of macros into preprocessor directives appears to violate the C standard for macro
preprocessors.
Specifically 1973 in 6.10.3.4 of the C0x spec. The same section has a similar restriction for C99.

http://c0x.coding-guidelines.com/6.10.3.4.html