mirror of
https://github.com/Kitware/CMake.git
synced 2026-11-06 05:16:58 +00:00
The minimum compiler versions were determined in the GCC and LLVM
repositories as follows. The first release containing a commit is the
lowest release tag listed by ``git tag --contains <commit>``. Since a
point release of an older series can be listed although it lacks the
commit, ``git grep`` at the tag confirms the change.
1. The header requires __has_cpp_attribute to accept scoped names such
as gnu::visibility. The commit adding this is the oldest one whose
diff touches a line parsing the "::" token:
gcc$ git log --reverse --format=%H -G'CPP_SCOPE' \
-- gcc/c-family/c-lex.c
llvm-project$ git log --reverse --format=%H \
-G'Ident__has_cpp_attribute.*coloncolon' -- clang/lib/Lex
This yields 42fd12b1e7fc50183bcf62861aae81301a9efbcf in
releases/gcc-5.1.0 and a0344c5d7b9b748a2244dce393ceb55e83b495d6 in
llvmorg-3.6.0.
2. The GCC commit accepting mixed attribute spellings references its bug
https://gcc.gnu.org/PR69585 in the message:
gcc$ git log --format=%H --grep=c++/69585
This yields aec868578d8515763d75693c1fdfbc30ff0a1e68 in
releases/gcc-13.1.0.
Fixes: #22908
Issue: #20527