This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: GCC optimizes integer overflow: bug or feature?


On Tuesday 19 December 2006 11:37, Paolo Bonzini wrote:
> 
> > By the way, as I've tried to describe here:
> > <http://cert.uni-stuttgart.de/advisories/c-integer-overflow.php>
> > variable range tracking can result in reintroduction of
> > supposedly-fixed security vulnerabilities. 8-(
> 
> Interesting read.  I agree with the proposed fix; however, note that GCC 
> does not make the result of overflowing signed left-shifts undefined, 
> exactly because in this case the overflow is relied upon by too many 
> existing programs (and also because left shifts are inherently a bitwise 
> operation, with well defined overflowing behavior on the most 
> significant bits).

I wrote this just a few days ago:

        do {
                int32_t v1 = v << 1;
                if (v < 0) v1 ^= mask;
                v = v1;
                printf("%10u: %08x\n", c++, v);
        } while (v != 1);

I would become rather sad if this will stop compiling correctly.
--
vda


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]