This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: Should GCC publish a general rule/warning due to it's default presumption of undefined signed integer overflow semantics?
- From: Gabriel Dos Reis <gdr at integrable-solutions dot net>
- To: Joe Buck <Joe dot Buck at synopsys dot COM>
- Cc: Andrew Pinski <pinskia at physics dot uc dot edu>, "'gcc mailing list'" <gcc at gcc dot gnu dot org>
- Date: 01 Jul 2005 03:39:47 +0200
- Subject: Re: Should GCC publish a general rule/warning due to it's default presumption of undefined signed integer overflow semantics?
- References: <BEE9BCEE.AAC7%schlie@comcast.net><20050630220250.GA10768@synopsys.com><m3wtobwkg9.fsf@uniton.integrable-solutions.net><20050630232531.GA11010@synopsys.com><m3irzv5p1r.fsf@uniton.integrable-solutions.net><a0222ee0d8b9c032e23bc30d2920559b@physics.uc.edu><20050701012538.GA11465@synopsys.com>
Joe Buck <Joe.Buck@synopsys.COM> writes:
| On Thu, Jun 30, 2005 at 09:02:48PM -0400, Andrew Pinski wrote:
| > But the reason question is why make it an undefined behavior instead of
| > an implementation defined? This would have made it clearer instead of
| > allowing the compiler not document what happens. Or is C++
| > just following C here? In which case it might be better to ask the C
| > committee why it was done this way and real definition of undefined for
| > this case?
|
| I already showed you the answer: loop optimization works better if you
| can ignore overflow.
There are various ways to work within "loop optimization" assumptions.
Assuming undefined behaviour is not the only one. In fact, given the
fact that the natural integer type for indices is "int" and not
"unsigned" and the known dislike of the original implementer of
C++ for "unsigned", it is legitimate to question whether that is "the
answer". I think that can be an "a posteriori" justification, but I'm
not sure that is "the answer".
-- Gaby