>> >The REQUIRE2 stuff can replace the >> > >> >#ifdef DIAGNOSTICS >> > if (expr) >> > panic(expl); >> >#endif >> >> I prefer asserts to call "Debugger()", rather than "panic()", and >> that's how I write my assertion macros. How are you supposed to debug >> something if it panics? >By having: >#ifdef DIAGNOSTICS > Debugger(exp1); > return; >#endif /* DIAGNOSTICS*/ panic() is declared __dead2 (i.e., __attribute__((noreturn))), so this should fail to compile. panic() already calls Debugger(), so it is easy to return by hand (set $eip to the return address, etc.). Bruce