This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: Miscompilation of remainder expressions
- From: Gabriel Dos Reis <gdr at cs dot tamu dot edu>
- To: Andrew Pinski <pinskia at physics dot uc dot edu>
- Cc: vincent+gcc at vinc17 dot org (Vincent Lefevre), gcc at gcc dot gnu dot org
- Date: 16 Jan 2007 18:09:27 -0600
- Subject: Re: Miscompilation of remainder expressions
- References: <200701162355.l0GNtk4s017536@localhost.localdomain>
Andrew Pinski <pinskia@physics.uc.edu> writes:
| >
| > Vincent Lefevre <vincent+gcc@vinc17.org> writes:
| >
| > | On 2007-01-16 13:41:16 -0800, Ian Lance Taylor wrote:
| > | > To be clear, in my opinion, this should always be selected by an
| > | > option, it should never be default behaviour for any target.
| > |
| > | I disagree. One should get correct results by default.
| >
| > Once we have an implemented solution, we can quibble over whether it
| > should be on by default or not. That debate will be supported by
| > sample of hard data. Once we have an implementation.
|
| I wonder why the call to div/ldiv/lldiv says the behavior is undefined while
| % is defined, that seems wrong.
That is because div also has to compute the division too (which is undefined)
"%" does not.
| The specific wording from the standard is "If either part of the result
| cannot be represented, the behavior is undefined." So why is % different
| from those functions?
because "%" is not "div", syntactically and semantically.
-- Gaby