tech-userlevel archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: standards on SIGFPE for divide by zero
On Thu, Mar 03, 2011 at 07:32:03AM -0500, Steven Bellovin wrote:
>
> On Mar 3, 2011, at 2:12 18AM, Ignatios Souvatzis wrote:
>
> > On Wed, Mar 02, 2011 at 02:59:32PM -0500, Thor Lancelot Simon wrote:
> >
> >> You want the program to get a floating-point-exception signal on a bad
> >> integer divide?
> >
> > Uh, it's been a generic arithmetic error signal for a long time, like
> > ENOTTY complaining about generic wrong-type-of-file-descriptor situations.
> > I was surprised by that a couple of years ago.
> >
> > SUSV3 defines:
> >
> > SIGFPE A Erroneous arithmetic operation.
> > ...
> > SIGFPE FPE_INTDIV Integer divide by zero.
> > FPE_INTOVF Integer overflow.
> > FPE_FLTDIV Floating-point divide by zero.
> > (...)
> >
> > Now, if the hardware in question can't create SIGFPE on integer divide,
> > I don't think we should torture the compiler into simulating it.
> >
> What does the C standard say? Is the exception required?
C'99 TC3 says in 7.14, page 246, paragraph 4:
"An implementation need not generate any of these signals, except
as a result of explicit calls to the raise function."
(where the list is SIGABRT, SIGILL, SIGFPE, SIGINT, SIGSEGV,
SIGTERM, and additionally defined signal numbers are allowed).
Regards,
-is
Home |
Main Index |
Thread Index |
Old Index