mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-01-09 12:40:23 +01:00
util: Add support for clang::fallthrough.
Looks like the __attribute__ version doesn't work for C++ in the
Android build. Only found now because we don't enable
-Wimplicit-fallthrough by default project wide for C++. Only
ACO enables it.
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13164>
(cherry picked from commit aad80e47d8)
This commit is contained in:
parent
766c57480b
commit
e5b1bee339
2 changed files with 12 additions and 1 deletions
|
|
@ -202,7 +202,7 @@
|
|||
"description": "util: Add support for clang::fallthrough.",
|
||||
"nominated": false,
|
||||
"nomination_type": null,
|
||||
"resolution": 4,
|
||||
"resolution": 1,
|
||||
"main_sha": null,
|
||||
"because_sha": null
|
||||
},
|
||||
|
|
|
|||
|
|
@ -76,9 +76,20 @@
|
|||
# define __has_attribute(x) 0
|
||||
#endif
|
||||
|
||||
#if defined(__has_cpp_attribute) && defined(__clang__)
|
||||
/* We do not do the same trick as __has_attribute because parsing
|
||||
* clang::fallthrough in the preprocessor fails in GCC. */
|
||||
# define HAS_CLANG_FALLTHROUGH __has_cpp_attribute(clang::fallthrough)
|
||||
#else
|
||||
# define HAS_CLANG_FALLTHROUGH 0
|
||||
#endif
|
||||
|
||||
#if __cplusplus >= 201703L || __STDC_VERSION__ > 201710L
|
||||
/* Standard C++17/C23 attribute */
|
||||
#define FALLTHROUGH [[fallthrough]]
|
||||
#elif HAS_CLANG_FALLTHROUGH
|
||||
/* Clang++ specific */
|
||||
#define FALLTHROUGH [[clang::fallthrough]]
|
||||
#elif __has_attribute(fallthrough)
|
||||
/* Non-standard but supported by at least gcc and clang */
|
||||
#define FALLTHROUGH __attribute__((fallthrough))
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue