[libcxx-commits] [libcxx] cb43fe3 - [libc++][NFC] Inline _LIBCPP_FALLTHROUGH() (#135001)
via libcxx-commits
libcxx-commits at lists.llvm.org
Fri Apr 11 03:07:07 PDT 2025
Author: Nikolas Klauser
Date: 2025-04-11T12:07:04+02:00
New Revision: cb43fe33b5d5084cf3b5a2723a03b692edb68018
URL: https://github.com/llvm/llvm-project/commit/cb43fe33b5d5084cf3b5a2723a03b692edb68018
DIFF: https://github.com/llvm/llvm-project/commit/cb43fe33b5d5084cf3b5a2723a03b692edb68018.diff
LOG: [libc++][NFC] Inline _LIBCPP_FALLTHROUGH() (#135001)
We have `[[fallthrough]]` available in all standards modes, so we can
just inline it like other stanard attributes we use.
Added:
Modified:
libcxx/include/__config
libcxx/include/__functional/hash.h
libcxx/include/locale
libcxx/include/regex
libcxx/src/filesystem/path_parser.h
Removed:
################################################################################
diff --git a/libcxx/include/__config b/libcxx/include/__config
index 3f03ceb13fc38..e14632f65b877 100644
--- a/libcxx/include/__config
+++ b/libcxx/include/__config
@@ -1124,9 +1124,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 5b7c88e5df6bd..3b50eccdad387 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 8e07b8be9ce0d..d7b814429d873 100644
--- a/libcxx/include/locale
+++ b/libcxx/include/locale
@@ -2419,7 +2419,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 ea5302c3026ef..12fc0787dcd5f 100644
--- a/libcxx/include/regex
+++ b/libcxx/include/regex
@@ -3929,7 +3929,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)
More information about the libcxx-commits
mailing list