Roberto Bagnara wrote:
Robert Dewar wrote:
Roberto Bagnara wrote:
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)?
All the best,
Roberto
P.S. I checked whether this bug affects my code and it does.
Before yesterday I was completely unsuspecting of such
a fundamental flaw... I wonder how many know about it.
It's truly amazing for real code to be computing remainders
in this domain ... seems a bad idea to me, since very few
people are comfortably aware of what remainder means for
such cases.
Everyone knows that dividing a number by -1 or 1 gives
a 0 remainder. To the contrary, no one expects a%b to
raise SIFPE when b != 0.
On the contrary, since the beginning of time SIGFPE has been generated
on GCC/x86/linux under these conditions. This is wildly known.
Just because you just found out about it does not mean that 'no one'
expects it.
David Daney