Roberto Bagnara writes:
 > Andrew Haley wrote:
 > > Roberto Bagnara writes:
 > >  > 
 > >  > Reading the thread "Autoconf manual's coverage of signed integer
 > >  > overflow & portability" I was horrified to discover about GCC's
 > >  > miscompilation of the remainder expression that causes INT_MIN % -1
 > >  > to cause a SIGFPE on CPUs of the i386 family.  Are there plans to
 > >  > fix this bug (which, to me, looks quite serious)?
 > > 
 > > No, there aren't.  It would make more sense for you to wrap % in some
 > > code that checks for this, rather than for us to slow down every division
 > > for this one special case.
 > 
 > With all due respect, I must say I am shocked.  I always thought
 > (and taught) that we, Free Software people, value standard conformance
 > and getting things right.

This is a disgreement about interpretation of the langauge in the
standard, which is:

"The result of the / operator is the quotient from the division of the
first operand by the second; the result of the % operator is the
remainder. In both operations, if the value of the second operand is
zero, the behavior is undefined. When integers are divided, the result
of the / operator is the algebraic quotient with any fractional part
discarded.87) If the quotient a/b is representable, the expression
(a/b)*b + a%b shall equal a."

If the quotient a/b is *not* representable, is the behaviour of %
well-defined or not?  It doesn't say.

Andrew.

Reply via email to