OSDN Git Service

[libc++] Update generate_feature_test_macro_components.py to match SD-6.
authorArthur O'Dwyer <arthur.j.odwyer@gmail.com>
Thu, 7 Jan 2021 23:21:07 +0000 (18:21 -0500)
committerArthur O'Dwyer <arthur.j.odwyer@gmail.com>
Fri, 8 Jan 2021 16:44:39 +0000 (11:44 -0500)
commit466df1718e41fe2fca6ce6bd98c01b18f42c05e4
treee5ab2303aa0fab6fa750d6e49037503d4d3042ae
parentdd5165a920f66268ee509af31fe84efedacdfbf9
[libc++] Update generate_feature_test_macro_components.py to match SD-6.

It's still a little confusing because in many cases C++17 and C++20
have different values, and libc++ implements the C++17 behavior but
not the C++20 behavior; 'unimplemented' can't represent that scenario.
Ultimately we probably ought to completely redesign the script to be
in terms of paper numbers, rather than language revisions, and make
it generate the CSV files like "Cxx2aStatusPaperStatus.csv" as well.

Most newly added macros are unimplemented. I've marked a few as implemented,
though, based on my reading of the code; for example I was pretty sure
`__cpp_lib_latch` is implemented since we have `<latch>`.

Differential Revision: https://reviews.llvm.org/D93830
24 files changed:
libcxx/docs/FeatureTestMacroTable.rst
libcxx/include/version
libcxx/test/std/language.support/support.limits/support.limits.general/algorithm.version.pass.cpp
libcxx/test/std/language.support/support.limits/support.limits.general/barrier.version.pass.cpp [new file with mode: 0644]
libcxx/test/std/language.support/support.limits/support.limits.general/bit.version.pass.cpp
libcxx/test/std/language.support/support.limits/support.limits.general/cmath.version.pass.cpp
libcxx/test/std/language.support/support.limits/support.limits.general/compare.version.pass.cpp
libcxx/test/std/language.support/support.limits/support.limits.general/complex.version.pass.cpp
libcxx/test/std/language.support/support.limits/support.limits.general/concepts.version.pass.cpp
libcxx/test/std/language.support/support.limits/support.limits.general/execution.version.pass.cpp
libcxx/test/std/language.support/support.limits/support.limits.general/functional.version.pass.cpp
libcxx/test/std/language.support/support.limits/support.limits.general/iterator.version.pass.cpp
libcxx/test/std/language.support/support.limits/support.limits.general/latch.version.pass.cpp [new file with mode: 0644]
libcxx/test/std/language.support/support.limits/support.limits.general/memory.version.pass.cpp
libcxx/test/std/language.support/support.limits/support.limits.general/semaphore.version.pass.cpp [new file with mode: 0644]
libcxx/test/std/language.support/support.limits/support.limits.general/string.version.pass.cpp
libcxx/test/std/language.support/support.limits/support.limits.general/string_view.version.pass.cpp
libcxx/test/std/language.support/support.limits/support.limits.general/thread.version.pass.cpp [new file with mode: 0644]
libcxx/test/std/language.support/support.limits/support.limits.general/tuple.version.pass.cpp
libcxx/test/std/language.support/support.limits/support.limits.general/type_traits.version.pass.cpp
libcxx/test/std/language.support/support.limits/support.limits.general/utility.version.pass.cpp
libcxx/test/std/language.support/support.limits/support.limits.general/vector.version.pass.cpp
libcxx/test/std/language.support/support.limits/support.limits.general/version.version.pass.cpp
libcxx/utils/generate_feature_test_macro_components.py