@@ -1,17 +1,14 @@
-#ifdef _LIBCPP_VERSION
-#define fallthrough _LIBCPP_FALLTHROUGH()
+#if !defined(__cplusplus) || __cplusplus < 201103L
+ #define fallthrough ((void)0)
#else
-
-#if __cplusplus >= 201103L
-
-#ifdef __clang__
-#define fallthrough [[clang::fallthrough]]
-#else
-#define fallthrough [[gnu::fallthrough]]
-#endif // __clang__
-
-#else
-#define fallthrough ((void)0)
-
+ #include <ciso646>
+ #ifdef _LIBCPP_VERSION
+ #define fallthrough _LIBCPP_FALLTHROUGH()
+ #else
+ #ifdef __clang__
+ #define fallthrough [[clang::fallthrough]]
+ #else
+ #define fallthrough [[gnu::fallthrough]]
+ #endif // __clang__
+ #endif // _LIBCPP_VERSION
#endif // __cplusplus
-#endif // _LIBCPP_VERSION
v4l2-test-time32-64.cpp included compiler.h, which checks _LIBCPP_VERSION. This only works against libc++ when a C++ header has already been included, which wasn't the case here. The <version> header is the C++20 method of defining _LIBCPP_VERSION, but for older versions, <ciso646> works as an alternative, so include that in compiler.h. compiler.h is for C as well as C++ though, so use __cplusplus to check for a C++ compiler before including <ciso646>. Signed-off-by: James Le Cuirot <chewi@gentoo.org> --- include/compiler.h | 27 ++++++++++++--------------- 1 file changed, 12 insertions(+), 15 deletions(-) -- 2.43.0