From: Daryle Walker (darylew_at_[hidden])
Date: 2005-12-02 12:09:45
On 11/30/05 2:07 PM, "David Abrahams" <dave_at_[hidden]> wrote:
> Daryle Walker <darylew_at_[hidden]> writes:
>> On 11/29/05 4:27 PM, "Jason Kankiewicz" <jkankiewicz_at_[hidden]> wrote:
>>> +# elif (defined(__GNUC__) && ((__GNUC__ >= 3 && __GNUC_MINOR__ >=5) ||
>>> __GNUC__ >= 4))
>> Shouldn't the check for GCC 3.x be:
>> __GNUC__ == 3 && __GNUC_MINOR__ >= 5
>> instead of the currently over-broad version? Otherwise version numbers like
>> 4.6 or 5.9 would match on that phrase, which is wrong. They should match on
>> the "__GNUC__ >= 4" phrase instead.
> Well, that would certainly be clearer, but it is semantically
> equivalent, is it not?
Sort of; it happens to be equivalent for the 3.x series. The phrase implies
it's applicable to any higher series (4.x, 5.x, etc.), but that's wrong
because it fails numbers like 4.2. The "__GNUC__ >= 4" phrase saves you
from that. The next similar error may be more insidious.
>> The problem phrase should only match on
>> 3.5 through 3.9.x.
> "problem phrase?"
The phrase I'm originally talked about ("__GNUC__ >= 3 && __GNUC_MINOR__
-- Daryle Walker Mac, Internet, and Video Game Junkie darylew AT hotmail DOT com
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk