Author: Aaron Ballman Date: 2022-09-13T11:08:58-04:00 New Revision: b8266f512a6218e8319379b65a637fa82b3900f6
URL: https://github.com/llvm/llvm-project/commit/b8266f512a6218e8319379b65a637fa82b3900f6 DIFF: https://github.com/llvm/llvm-project/commit/b8266f512a6218e8319379b65a637fa82b3900f6.diff LOG: Correct the __has_c_attribute value for fallthrough The original proposal was seen in Apr 2019 and we accidentally used that date (201904L) as the feature testing value. However, WG14 N2408 was adopted at the Oct 2019 meeting and so that's the correct date for the feature testing macro. The committee draft for C2x shows 201910L for this value, so this changes brings us in line with the standard. Added: Modified: clang/docs/ReleaseNotes.rst clang/include/clang/Basic/Attr.td clang/test/Preprocessor/has_c_attribute.c clang/test/Sema/c2x-fallthrough.c Removed: ################################################################################ diff --git a/clang/docs/ReleaseNotes.rst b/clang/docs/ReleaseNotes.rst index 9bc96f4dc1e9..dcc2eaf4b202 100644 --- a/clang/docs/ReleaseNotes.rst +++ b/clang/docs/ReleaseNotes.rst @@ -188,6 +188,11 @@ Attribute Changes in Clang supported the ability to specify a message in the attribute, so there were no changes to the attribute behavior. +- Updated the value returned by ``__has_c_attribute(fallthrough)`` to ``201910L`` + based on the final date specified by the C2x committee draft. We previously + used ``201904L`` (the date the proposal was seen by the committee) by mistake. + There were no other changes to the attribute behavior. + Windows Support --------------- - For the MinGW driver, added the options ``-mguard=none``, ``-mguard=cf`` and diff --git a/clang/include/clang/Basic/Attr.td b/clang/include/clang/Basic/Attr.td index 48c7791ebe33..2e3297b72a8c 100644 --- a/clang/include/clang/Basic/Attr.td +++ b/clang/include/clang/Basic/Attr.td @@ -1412,7 +1412,7 @@ def ExtVectorType : Attr { def FallThrough : StmtAttr { let Spellings = [CXX11<"", "fallthrough", 201603>, - C2x<"", "fallthrough", 201904>, + C2x<"", "fallthrough", 201910>, CXX11<"clang", "fallthrough">, GCC<"fallthrough">]; // The attribute only applies to a NullStmt, but we have special fix-it // behavior if applied to a case label. diff --git a/clang/test/Preprocessor/has_c_attribute.c b/clang/test/Preprocessor/has_c_attribute.c index 401daa72b85b..1da4d0541e6e 100644 --- a/clang/test/Preprocessor/has_c_attribute.c +++ b/clang/test/Preprocessor/has_c_attribute.c @@ -3,7 +3,7 @@ #define C2x(x) x: __has_c_attribute(x) -// CHECK: fallthrough: 201904L +// CHECK: fallthrough: 201910L C2x(fallthrough) // CHECK: __nodiscard__: 202003L diff --git a/clang/test/Sema/c2x-fallthrough.c b/clang/test/Sema/c2x-fallthrough.c index baa62aa8f140..092d5285f80b 100644 --- a/clang/test/Sema/c2x-fallthrough.c +++ b/clang/test/Sema/c2x-fallthrough.c @@ -1,4 +1,7 @@ -// RUN: %clang_cc1 -fsyntax-only -fdouble-square-bracket-attributes -verify %s +// RUN: %clang_cc1 -fsyntax-only -std=c2x -verify %s + +// This is the latest version of fallthrough that we support. +_Static_assert(__has_c_attribute(fallthrough) == 201910L); void f(int n) { switch (n) { _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits