From af952074c34ba0e44ce76e04a8bcd41d7732e262 Mon Sep 17 00:00:00 2001 From: Boris Kolpackov Date: Fri, 17 Nov 2023 07:32:52 +0200 Subject: Undo remap of Apple Clang 14.0.3 and 15.0.0 to vanilla Clang 14.0 and 15.0 --- libbuild2/cc/guess.cxx | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/libbuild2/cc/guess.cxx b/libbuild2/cc/guess.cxx index 474185a..066d790 100644 --- a/libbuild2/cc/guess.cxx +++ b/libbuild2/cc/guess.cxx @@ -2538,7 +2538,9 @@ namespace build2 // the Apple's version (that is presumably based on it) still does. So // the theory here is that Apple upgrades to newer libc++ while // keeping the old compiler. Which means we must be more conservative - // and assume something like 15.0.6 is still 14-based. + // and assume something like 15.0.6 is still 14-based. But then you + // get -Wunqualified-std-cast-call in 14, which was supposedly only + // introduced in Clang 15. So maybe not. // // Note that this is Apple Clang version and not XCode version. // @@ -2561,15 +2563,15 @@ namespace build2 // 13.0.0 -> 11.0 // 13.1.6 -> 12.0 // 14.0.0 -> 12.0 (__LIBCPP_VERSION=130000) - // 14.0.3 -> 14.0 (__LIBCPP_VERSION=150006) - // 15.0.0 -> 15.0 (__LIBCPP_VERSION=160002) + // 14.0.3 -> 15.0 (__LIBCPP_VERSION=150006) + // 15.0.0 -> 16.0 (__LIBCPP_VERSION=160002) // uint64_t mj (var_ver->major); uint64_t mi (var_ver->minor); uint64_t pa (var_ver->patch); - if (mj >= 15) {mj = 15; mi = 0; pa = 0;} - else if (mj == 14 && (mi > 0 || pa >= 3)) {mj = 14; mi = 0; pa = 0;} + if (mj >= 15) {mj = 16; mi = 0; pa = 0;} + else if (mj == 14 && (mi > 0 || pa >= 3)) {mj = 15; mi = 0; pa = 0;} else if (mj == 14 || (mj == 13 && mi >= 1)) {mj = 12; mi = 0; pa = 0;} else if (mj == 13) {mj = 11; mi = 0; pa = 0;} else if (mj == 12 && (mi > 0 || pa >= 5)) {mj = 10; mi = 0; pa = 0;} -- cgit v1.1