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: Joe Buck <Joe dot Buck at synopsys dot COM>
- To: Andrew Pinski <pinskia at physics dot uc dot edu>
- Cc: Gabriel Dos Reis <gdr at integrable-solutions dot net>,"'gcc mailing list'" <gcc at gcc dot gnu dot org>
- Date: Thu, 30 Jun 2005 18:25:38 -0700
- 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>
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.
How much do you want to pay for "implementation defined"? If you specify
the behavior of overflow precisely, then every optimizer in GCC must
preserve this behavior. That has a high cost.