signed is undefined and has been since 1992 (in GCC)
Robert Dewar
dewar@adacore.com
Sun Jul 3 10:10:00 GMT 2005
Florian Weimer wrote:
> * Robert Dewar:
>>Making programs bug free has more to it than understanding the language
>>you are writing in, but it is a useful step forward to avoid problems
>>that come from simply not knowing the rules of the language you are
>>writing in (I can't guarantee that GNAT is bug free in that regard,
>>but I can't remember a case where a bug stemmed from this source).
> There was some dependency on argument order evaluation in GNAT, but
> this was part of GIGI, so it's not the best example.
Indeed, given that GIGI is written in C, by people who have not read the
C standard :-) In practice though I suspect this was just a glitch.
Depending on evaluation order is a bug that can be committed accidentally
even by those who know well that such things are undefined or, as in Ada,
non-deterministic. The trouble is that levels of abstraction often obscure
such errors (just abtracting things into a macro in C can sometimes have
that effect).
More information about the Gcc
mailing list