This patch prevents compile errors if the C++ compiler does not support
C++11 or the support is not enabled.

VMWare-BZ: #1953215
Fixes: 994bfc298502 ("Automatically verify that OVS header files work OK in C++ 
also.")
Signed-off-by: Yi-Hung Wei <[email protected]>
---
 include/openflow/openflow-common.h | 7 +++++--
 include/openvswitch/compiler.h     | 6 +++++-
 2 files changed, 10 insertions(+), 3 deletions(-)

diff --git a/include/openflow/openflow-common.h 
b/include/openflow/openflow-common.h
index d66551997434..ea6bb41bc15c 100644
--- a/include/openflow/openflow-common.h
+++ b/include/openflow/openflow-common.h
@@ -59,9 +59,12 @@
 #define OFP_ASSERT(EXPR)                                                \
         extern int (*build_assert(void))[ sizeof(struct {               \
                     unsigned int build_assert_failed : (EXPR) ? 1 : -1; })]
-#else /* __cplusplus */
+#elif __cplusplus >= 201103L
 #define OFP_ASSERT(EXPR) static_assert(EXPR, "assertion failed")
-#endif /* __cplusplus */
+#else  /* __cplusplus < 201103L */
+#include <boost/static_assert.hpp>
+#define OFP_ASSERT BOOST_STATIC_ASSERT
+#endif /* __cplusplus < 201103L */
 
 /* Version number:
  * Non-experimental versions released: 0x01 0x02
diff --git a/include/openvswitch/compiler.h b/include/openvswitch/compiler.h
index 0076ad763578..c7cb9308d029 100644
--- a/include/openvswitch/compiler.h
+++ b/include/openvswitch/compiler.h
@@ -243,9 +243,13 @@
 #ifdef __CHECKER__
 #define BUILD_ASSERT(EXPR) ((void) 0)
 #define BUILD_ASSERT_DECL(EXPR) extern int (*build_assert(void))[1]
-#elif defined(__cplusplus)
+#elif defined(__cplusplus) && __cplusplus >= 201103L
 #define BUILD_ASSERT(EXPR) static_assert(EXPR, "assertion failed")
 #define BUILD_ASSERT_DECL(EXPR) static_assert(EXPR, "assertion failed")
+#elif defined(__cplusplus) && __cplusplus < 201103L
+#include <boost/static_assert.hpp>
+#define BUILD_ASSERT BOOST_STATIC_ASSERT
+#define BUILD_ASSERT_DECL BOOST_STATIC_ASSERT
 #elif (__GNUC__ * 256 + __GNUC_MINOR__ >= 0x403 \
        || __has_extension(c_static_assert))
 #define BUILD_ASSERT_DECL(EXPR) _Static_assert(EXPR, #EXPR)
-- 
2.7.4

_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to