|
|
@@ -12,6 +12,31 @@
|
|
|
#define @KWSYS_NAMESPACE@_CXX_HAS_EXT_STDIO_FILEBUF_H \
|
|
|
@KWSYS_CXX_HAS_EXT_STDIO_FILEBUF_H@
|
|
|
|
|
|
+#if defined(__SUNPRO_CC) && __SUNPRO_CC > 0x5130 && defined(__has_attribute)
|
|
|
+#define @KWSYS_NAMESPACE@__has_cpp_attribute(x) __has_attribute(x)
|
|
|
+#elif defined(__has_cpp_attribute)
|
|
|
+#define @KWSYS_NAMESPACE@__has_cpp_attribute(x) __has_cpp_attribute(x)
|
|
|
+#else
|
|
|
+#define @KWSYS_NAMESPACE@__has_cpp_attribute(x) 0
|
|
|
+#endif
|
|
|
+
|
|
|
+#ifndef @KWSYS_NAMESPACE@_FALLTHROUGH
|
|
|
+#if __cplusplus >= 201703L && @KWSYS_NAMESPACE@__has_cpp_attribute(fallthrough)
|
|
|
+#define @KWSYS_NAMESPACE@_FALLTHROUGH [[fallthrough]]
|
|
|
+#elif __cplusplus >= 201103L && \
|
|
|
+ @KWSYS_NAMESPACE@__has_cpp_attribute(gnu::fallthrough)
|
|
|
+#define @KWSYS_NAMESPACE@_FALLTHROUGH [[gnu::fallthrough]]
|
|
|
+#elif __cplusplus >= 201103L && \
|
|
|
+ @KWSYS_NAMESPACE@__has_cpp_attribute(clang::fallthrough)
|
|
|
+#define @KWSYS_NAMESPACE@_FALLTHROUGH [[clang::fallthrough]]
|
|
|
+#endif
|
|
|
+#endif
|
|
|
+#ifndef @KWSYS_NAMESPACE@_FALLTHROUGH
|
|
|
+#define @KWSYS_NAMESPACE@_FALLTHROUGH static_cast<void>(0)
|
|
|
+#endif
|
|
|
+
|
|
|
+#undef @KWSYS_NAMESPACE@__has_cpp_attribute
|
|
|
+
|
|
|
/* If building a C++ file in kwsys itself, give the source file
|
|
|
access to the macros without a configured namespace. */
|
|
|
#if defined(KWSYS_NAMESPACE)
|
|
|
@@ -22,6 +47,7 @@
|
|
|
#define KWSYS_STL_HAS_WSTRING @KWSYS_NAMESPACE@_STL_HAS_WSTRING
|
|
|
#define KWSYS_CXX_HAS_EXT_STDIO_FILEBUF_H \
|
|
|
@KWSYS_NAMESPACE@_CXX_HAS_EXT_STDIO_FILEBUF_H
|
|
|
+#define KWSYS_FALLTHROUGH @KWSYS_NAMESPACE@_FALLTHROUGH
|
|
|
#endif
|
|
|
|
|
|
#endif
|