From: Aaron Ballman Date: Mon, 22 May 2023 12:14:42 +0000 (-0400) Subject: Add WG14 N2607 to the list of backported features X-Git-Tag: upstream/17.0.6~7698 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=09841d792f47310cf582156b92ffd9fa232853d6;p=platform%2Fupstream%2Fllvm.git Add WG14 N2607 to the list of backported features Arrays and their element types are identically qualified as of C2x, and we support that behavior as far back as C89. As a drive-by, this adds the paper number for designated initializers so that all the WG14 features can be uniquely identified despite the lack of a feature testing macro. --- diff --git a/clang/docs/LanguageExtensions.rst b/clang/docs/LanguageExtensions.rst index 5b186c4..d881568 100644 --- a/clang/docs/LanguageExtensions.rst +++ b/clang/docs/LanguageExtensions.rst @@ -1373,37 +1373,38 @@ More information could be found `here Language Extensions Back-ported to Previous Standards ===================================================== -=================================== ================================ ============= ============= ================================== -Feature Feature Test Macro Introduced In Backported To Required Flags -=================================== ================================ ============= ============= ================================== -variadic templates __cpp_variadic_templates C++11 C++03 -Alias templates __cpp_alias_templates C++11 C++03 -Non-static data member initializers __cpp_nsdmi C++11 C++03 -Range-based ``for`` loop __cpp_range_based_for C++11 C++03 -RValue references __cpp_rvalue_references C++11 C++03 -Attributes __cpp_attributes C++11 C++03 -fdouble-square-bracket-attributes -variable templates __cpp_variable_templates C++14 C++03 -Binary literals __cpp_binary_literals C++14 C++03 -Relaxed constexpr __cpp_constexpr C++14 C++11 -``if constexpr`` __cpp_if_constexpr C++17 C++11 -fold expressions __cpp_fold_expressions C++17 C++03 -Lambda capture of \*this by value __cpp_capture_star_this C++17 C++11 -Attributes on enums __cpp_enumerator_attributes C++17 C++11 -Guaranteed copy elision __cpp_guaranteed_copy_elision C++17 C++03 -Hexadecimal floating literals __cpp_hex_float C++17 C++03 -``inline`` variables __cpp_inline_variables C++17 C++03 -Attributes on namespaces __cpp_namespace_attributes C++17 C++11 -Structured bindings __cpp_structured_bindings C++17 C++03 -template template arguments __cpp_template_template_args C++17 C++03 -``static operator[]`` __cpp_multidimensional_subscript C++20 C++03 -Designated initializers __cpp_designated_initializers C++20 C++03 -Conditional ``explicit`` __cpp_conditional_explicit C++20 C++03 -``using enum`` __cpp_using_enum C++20 C++03 -``if consteval`` __cpp_if_consteval C++23 C++20 -``static operator()`` __cpp_static_call_operator C++23 C++03 ------------------------------------ -------------------------------- ------------- ------------- ---------------------------------- -Designated initializers C99 C89 -=================================== ================================ ============= ============= ================================== +====================================== ================================ ============= ============= ================================== +Feature Feature Test Macro Introduced In Backported To Required Flags +====================================== ================================ ============= ============= ================================== +variadic templates __cpp_variadic_templates C++11 C++03 +Alias templates __cpp_alias_templates C++11 C++03 +Non-static data member initializers __cpp_nsdmi C++11 C++03 +Range-based ``for`` loop __cpp_range_based_for C++11 C++03 +RValue references __cpp_rvalue_references C++11 C++03 +Attributes __cpp_attributes C++11 C++03 -fdouble-square-bracket-attributes +variable templates __cpp_variable_templates C++14 C++03 +Binary literals __cpp_binary_literals C++14 C++03 +Relaxed constexpr __cpp_constexpr C++14 C++11 +``if constexpr`` __cpp_if_constexpr C++17 C++11 +fold expressions __cpp_fold_expressions C++17 C++03 +Lambda capture of \*this by value __cpp_capture_star_this C++17 C++11 +Attributes on enums __cpp_enumerator_attributes C++17 C++11 +Guaranteed copy elision __cpp_guaranteed_copy_elision C++17 C++03 +Hexadecimal floating literals __cpp_hex_float C++17 C++03 +``inline`` variables __cpp_inline_variables C++17 C++03 +Attributes on namespaces __cpp_namespace_attributes C++17 C++11 +Structured bindings __cpp_structured_bindings C++17 C++03 +template template arguments __cpp_template_template_args C++17 C++03 +``static operator[]`` __cpp_multidimensional_subscript C++20 C++03 +Designated initializers __cpp_designated_initializers C++20 C++03 +Conditional ``explicit`` __cpp_conditional_explicit C++20 C++03 +``using enum`` __cpp_using_enum C++20 C++03 +``if consteval`` __cpp_if_consteval C++23 C++20 +``static operator()`` __cpp_static_call_operator C++23 C++03 +-------------------------------------- -------------------------------- ------------- ------------- ---------------------------------- +Designated initializers (N494) C99 C89 +Array & element qualification (N2607) C2x C89 +====================================== ================================ ============= ============= ================================== Type Trait Primitives =====================