[clang] 09841d7 - Add WG14 N2607 to the list of backported features

Aaron Ballman via cfe-commits cfe-commits at lists.llvm.org
Mon May 22 05:16:42 PDT 2023


Author: Aaron Ballman
Date: 2023-05-22T08:16:32-04:00
New Revision: 09841d792f47310cf582156b92ffd9fa232853d6

URL: https://github.com/llvm/llvm-project/commit/09841d792f47310cf582156b92ffd9fa232853d6
DIFF: https://github.com/llvm/llvm-project/commit/09841d792f47310cf582156b92ffd9fa232853d6.diff

LOG: 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.

Added: 
    

Modified: 
    clang/docs/LanguageExtensions.rst

Removed: 
    


################################################################################
diff  --git a/clang/docs/LanguageExtensions.rst b/clang/docs/LanguageExtensions.rst
index 5b186c4f81774..d881568b13994 100644
--- a/clang/docs/LanguageExtensions.rst
+++ b/clang/docs/LanguageExtensions.rst
@@ -1373,37 +1373,38 @@ More information could be found `here <https://clang.llvm.org/docs/Modules.html>
 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
 =====================


        


More information about the cfe-commits mailing list