
Daryle Walker <darylew@hotmail.com> writes:
On 11/30/05 2:07 PM, "David Abrahams" <dave@boost-consulting.com> wrote:
Daryle Walker <darylew@hotmail.com> writes:
On 11/29/05 4:27 PM, "Jason Kankiewicz" <jkankiewicz@advpubtech.com> 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.),
Isn't it?
but that's wrong because it fails numbers like 4.2.
What fails numbers like 4.2?
The "__GNUC__ >= 4" phrase saves you from that.
So, as I was saying, it's semantically equivalent. I was trying to get an idea how urgent it was to make a change, so close to the release date.
The next similar error may be more insidious.
It's a nonissue, fortunately, since the code in question does not appear anywhere in CVS. -- Dave Abrahams Boost Consulting www.boost-consulting.com