This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: [PATCH][4.3] Deprecate -ftrapv
- From: Andi Kleen <andi at firstfloor dot org>
- To: rridge at csclub dot uwaterloo dot ca (Ross Ridge)
- Cc: gcc at gcc dot gnu dot org
- Date: 03 Mar 2008 01:38:01 +0100
- Subject: Re: [PATCH][4.3] Deprecate -ftrapv
- References: <20080302222845.662E273D8C@caffeine.csclub.uwaterloo.ca>
rridge@csclub.uwaterloo.ca (Ross Ridge) writes:
> Robert Dewar writes:
> >Yes, and that is what we would want for Ada, so I am puzzled by your
> >sigh. All Ada needs to do is to issue a constraint_error exception,
> >it does not need to know where the exception came from or why except
> >in very broad detail.
>
> Unless printing "This application has requested the Runtime to terminate
> it in an unusual way." counts an issuing a contraint_error in Ada,
> it seems to me that -ftrapv and Ada have differing requirements.
> How can you portabilty and correctly generate a constraint_error if
> the code generated by -ftrapv calls the C runtime function abort()?
> On Unix-like systems you can catch SIGABRT, but even there how do you
> tell that it didn't come from CTRL-\, a signal sent from a different
> process, or abort() called fom some other context? With INTO I don't
> see any way distignuish the SIGSEGV it generates on Linux from any of
> the myriad other ways a SIGSEGV can be generated.
Easy: The signal frame that is passed as an argument to the signal handler
has a trapno member than will contain 4 for INTO. The only other case where
it would contain 4 would be a explicit int 4
-Andi