>>>>> "Joe" == Joe Buck <[EMAIL PROTECTED]> writes:
Joe> I wrote: There are several effects from "noreturn". We would Joe> want some of these effects for "abort", but not others, to get Joe> debuggable code without degrading compile-time warnings. Joe> On Wed, Aug 06, 2008 at 01:37:51PM -0400, Paul Koning wrote: >> So the issue is that two unrelated features are currently combined >> in a single attribute: >> >> 1. This function doesn't return, do the right thing with warnings >> in the caller of this function. >> >> 2. Don't bother saving registers when calling this function >> because it won't return so the registers aren't needed afterwards. >> >> The issue is that #2 doesn't apply to "abort" because the >> registers ARE needed afterwards -- at debug time. Joe> But not necessarily all of them (depending on platform). That Joe> is, the caller-saved registers don't have to be saved because Joe> the function isn't returning, but there has to be enough of a Joe> stack frame so that a debugger can set a breakpoint on the abort Joe> and determine who the caller was. That's sufficient for live debugging but not for corefiles. In that case you do want caller-saved registers, because they may contain local variable values that don't live in memory at the time of the abort call. paul