[PATCH v2] v4l2-compliance: Fix building against libc++

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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@xxxxxxxxxx>
---
 include/compiler.h | 27 ++++++++++++---------------
 1 file changed, 12 insertions(+), 15 deletions(-)

diff --git a/include/compiler.h b/include/compiler.h
index 5ad54f41..169247a8 100644
--- a/include/compiler.h
+++ b/include/compiler.h
@@ -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
--
2.43.0




[Index of Archives]     [Linux Input]     [Video for Linux]     [Gstreamer Embedded]     [Mplayer Users]     [Linux USB Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]

  Powered by Linux