Michael Veksler - Re: gcc trunk vs python (original) (raw)
This is the mail archive of the gcc@gcc.gnu.orgmailing 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] |
- From: Michael Veksler
- To: Jack Howarth
- Cc: gcc at gcc dot gnu dot org, guido at python dot org
- Date: Sun, 27 Aug 2006 07:40:36 +0300
- Subject: Re: gcc trunk vs python
- References: <20060826222747.5FD6C110019@bromo.msbb.uc.edu>
Jack Howarth wrote:
Would any of the gcc developers care to drop by the python-dev mailing list and give the author of python an answer?
http://mail.python.org/pipermail/python-dev/2006-August/068482.html
*Guido van Rossum wrote: *
I'm not sure I follow why this isn't considered a regression in GCC.
Clearly, on all current hardware, x == -x is also true for the most
negative int (0x80000000 on a 32-bit box). Why is GCC attempting to
break our code (and then blaming us for it!) by using the C standard's
weaselwords that signed integer overflow is undefined, despite that it
has had a traditional meaning on 2's complement hardware for many
decades? If GCC starts to enforce everything that the C standard says
is undefined then very few programs will still work...
First, you can always use -fwarpv and retail old behavior. Any code that breaks
or suspects breakage by the new behavior may use this flag.
Second, consider the following example: Once upon a time
int p; / No init!!! */ if (*p && 0) *p=0;
would not crash (DOS days). One could say "Why should Microsoft or Borland crash our code? Clearly, the value of "p" should never be read or written". This example broke when we had memory protection. Memory protection is a good thing, right? Similarly, the new gcc behavior allows for better optimization. Also, we are told that some boxes, have different codes for signed and unsigned operations, where signed overflows either trap or saturate (IIRC on x86, MMX saturates on overflow)
Once I had a similar claim to yours (against this overflow behavior): http://gcc.gnu.org/ml/gcc/2005-06/msg01238.html But after extensive searches, I could not find code that breaks due to this new behavior of overflow. Such code is apparently rare.
Michael
- Follow-Ups:
- Re: gcc trunk vs python
* From: Robert Dewar - Re: gcc trunk vs python
* From: Guido van Rossum
- Re: gcc trunk vs python
- References:
- Re: gcc trunk vs python
* From: Jack Howarth
- Re: gcc trunk vs python
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |