While preparing the PR I was able to confirm the spurious selection of Apple clang version 15.0.0 in some runs. Unfortunately the solution using xcodebuild -find clang++ doesn't seem to help as can be seen in this build that tested another approach to use that command. It seem that is such cases XCode 15 is used by default. The problem will require further investigation or a fix of the GitHub macos-13 runner. Re-running jobs failing due to this issue will remain a workaround. I've added a command to select Xcode 14. This should hopefully solve the issue.
REMARK: Ubuntu 2404 will likely come out with Clang up to v18 and GCC up to v14 available directly from apt, without the need to install them manually (see here). This might be a good point to start looking into including newer compilers with better C++23 support and possibly dropping those without any (namely GCC 10).
Add support for Clang 15 in regression tests.
test-results/apple-clang-14
directory can be reused.c++2b
. Stick toc++20
for:c++2b
. Due to this lack of support this version might possibly be dropped leaving only GCC 13.c++2b
- to be investigated further.NOTE:
c++2b
makes the loweredpure2-assert-expected-not-null.cpp2
compile for GCC 13.test-results/clang-15
added by this PR differs fromtest-results/apple-clang-14
only for:mixed-captures-in-expressions-and-postconditions.cpp2
pure2-type-and-namespace-aliases.cpp2
xcodebuild -find clang++
doesn't seem to help as can be seen in this build that tested another approach to use that command. It seem that is such cases XCode 15 is used by default.The problem will require further investigation or a fix of the GitHubI've added a command to select Xcode 14. This should hopefully solve the issue.macos-13
runner. Re-running jobs failing due to this issue will remain a workaround.REMARK: Ubuntu 2404 will likely come out with Clang up to v18 and GCC up to v14 available directly from apt, without the need to install them manually (see here). This might be a good point to start looking into including newer compilers with better C++23 support and possibly dropping those without any (namely GCC 10).