[libcxx-commits] [libcxx] [libc++][NFC] Inline _LIBCPP_FALLTHROUGH() (PR #135001)
via libcxx-commits
libcxx-commits at lists.llvm.org
Fri Apr 11 03:07:40 PDT 2025
llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT-->
@llvm/pr-subscribers-libcxx
Author: Nikolas Klauser (philnik777)
<details>
<summary>Changes</summary>
We have `[[fallthrough]]` available in all standards modes, so we can just inline it like other stanard attributes we use.
---
Full diff: https://github.com/llvm/llvm-project/pull/135001.diff
5 Files Affected:
- (modified) libcxx/include/__config (-3)
- (modified) libcxx/include/__functional/hash.h (+2-2)
- (modified) libcxx/include/locale (+1-1)
- (modified) libcxx/include/regex (+1-1)
- (modified) libcxx/src/filesystem/path_parser.h (+1-1)
``````````diff
diff --git a/libcxx/include/__config b/libcxx/include/__config
index b6da7114cfc85..e6acd9f237e3f 100644
--- a/libcxx/include/__config
+++ b/libcxx/include/__config
@@ -1129,9 +1129,6 @@ typedef __char32_t char32_t;
__attribute__((__format__(archetype, format_string_index, first_format_arg_index)))
# define _LIBCPP_PACKED __attribute__((__packed__))
-// Use a function like macro to imply that it must be followed by a semicolon
-# define _LIBCPP_FALLTHROUGH() [[fallthrough]]
-
# if __has_attribute(__no_sanitize__) && !defined(_LIBCPP_COMPILER_GCC)
# define _LIBCPP_NO_CFI __attribute__((__no_sanitize__("cfi")))
# else
diff --git a/libcxx/include/__functional/hash.h b/libcxx/include/__functional/hash.h
index a191748f2db60..9d3cb71cfc8fa 100644
--- a/libcxx/include/__functional/hash.h
+++ b/libcxx/include/__functional/hash.h
@@ -64,10 +64,10 @@ struct __murmur2_or_cityhash<_Size, 32> {
switch (__len) {
case 3:
__h ^= static_cast<_Size>(__data[2] << 16);
- _LIBCPP_FALLTHROUGH();
+ [[__fallthrough__]];
case 2:
__h ^= static_cast<_Size>(__data[1] << 8);
- _LIBCPP_FALLTHROUGH();
+ [[__fallthrough__]];
case 1:
__h ^= __data[0];
__h *= __m;
diff --git a/libcxx/include/locale b/libcxx/include/locale
index 3afdef856ede7..e4c623e784a8a 100644
--- a/libcxx/include/locale
+++ b/libcxx/include/locale
@@ -2421,7 +2421,7 @@ bool money_get<_CharT, _InputIterator>::__do_get(
return false;
}
}
- _LIBCPP_FALLTHROUGH();
+ [[__fallthrough__]];
case money_base::none:
if (__p != 3) {
while (__b != __e && __ct.is(ctype_base::space, *__b))
diff --git a/libcxx/include/regex b/libcxx/include/regex
index 067f904d4e699..11199b5222175 100644
--- a/libcxx/include/regex
+++ b/libcxx/include/regex
@@ -3930,7 +3930,7 @@ _ForwardIterator basic_regex<_CharT, _Traits>::__parse_character_escape(
if (__hd == -1)
std::__throw_regex_error<regex_constants::error_escape>();
__sum = 16 * __sum + static_cast<unsigned>(__hd);
- _LIBCPP_FALLTHROUGH();
+ [[__fallthrough__]];
case 'x':
++__first;
if (__first == __last)
diff --git a/libcxx/src/filesystem/path_parser.h b/libcxx/src/filesystem/path_parser.h
index 06623696452da..5968f449235ba 100644
--- a/libcxx/src/filesystem/path_parser.h
+++ b/libcxx/src/filesystem/path_parser.h
@@ -90,7 +90,7 @@ struct PathParser {
if (TkEnd)
return makeState(PS_InRootName, Start, TkEnd);
}
- _LIBCPP_FALLTHROUGH();
+ [[__fallthrough__]];
case PS_InRootName: {
PosPtr TkEnd = consumeAllSeparators(Start, End);
if (TkEnd)
``````````
</details>
https://github.com/llvm/llvm-project/pull/135001
More information about the libcxx-commits
mailing list