I think the macro idea is a great one.Actually Xuejun and I have previously discussed the fact that we'd like to move more complexity into post-processing steps, in order to simplify the Csmith core, if possible.
#define MAY_BE_NULL(ptr) (puts("possible NULL dereference"), (ptr))
Of course we had better either turn off buffering on STDOUT or else put an fflush(STDOUT) between the puts() and the deref!
John