I got bitten by a variant of this last week, with a
simple typo in my SIGNAL(SIG_xxx) statement. It took a while
to track down, because the default handler was causing a
reset, so things behaved _very_ strangely until I figured
it out.
In the spirit of posting a patch, rather than trolling for
others to do the work, I tried to come up with more pre-processor
goo to spit out a warning/error if the argument to either
SIGNAL() or INTERRUPT() macros was not defined, but
everything I tried refused to compile. So, I'm resorting
to throwing the idea out there in the hope that someone
more skilled at beating the preprocessor into submission can
come up with a scheme that works, or others can explain why
it's a short-sighted approach.