#define free(p) do { free(p); p = NULL; } while(0)
(free)(p);
if(x) MACRO(); else something();
if(x) { ... }; // Error! else something();