This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH][4.3] Deprecate -ftrapv


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]