Pārlūkot izejas kodu

Simplify CM_FALLTHROUGH implementation

Use the macro now provided by KWSys instead of using `try_compile`
checks.  It will no longer consider the `__attribute__((fallthrough))`
variant, but compilers that don't have one of the modern attributes
shouldn't warn about not using one anyway.
Brad King 8 gadi atpakaļ
vecāks
revīzija
b2f612a0fa

+ 0 - 11
Source/Checks/cm_cxx_attribute_fallthrough.cxx

@@ -1,11 +0,0 @@
-int main(int argc, char* [])
-{
-  int i = 3;
-  switch (argc) {
-    case 1:
-      i = 0;
-      __attribute__((fallthrough));
-    default:
-      return i;
-  }
-}

+ 0 - 11
Source/Checks/cm_cxx_fallthrough.cxx

@@ -1,11 +0,0 @@
-int main(int argc, char* [])
-{
-  int i = 3;
-  switch (argc) {
-    case 1:
-      i = 0;
-      [[fallthrough]];
-    default:
-      return i;
-  }
-}

+ 0 - 7
Source/Checks/cm_cxx_features.cmake

@@ -41,13 +41,6 @@ function(cm_check_cxx_feature name)
   endif()
 endfunction()
 
-cm_check_cxx_feature(fallthrough)
-if(NOT CMake_HAVE_CXX_FALLTHROUGH)
-  cm_check_cxx_feature(gnu_fallthrough)
-  if(NOT CMake_HAVE_CXX_GNU_FALLTHROUGH)
-    cm_check_cxx_feature(attribute_fallthrough)
-  endif()
-endif()
 cm_check_cxx_feature(make_unique)
 if(CMake_HAVE_CXX_MAKE_UNIQUE)
   set(CMake_HAVE_CXX_UNIQUE_PTR 1)

+ 0 - 11
Source/Checks/cm_cxx_gnu_fallthrough.cxx

@@ -1,11 +0,0 @@
-int main(int argc, char* [])
-{
-  int i = 3;
-  switch (argc) {
-    case 1:
-      i = 0;
-      [[gnu::fallthrough]];
-    default:
-      return i;
-  }
-}

+ 1 - 12
Source/cmConfigure.cmake.h.in

@@ -19,22 +19,11 @@
 #cmakedefine HAVE_UNSETENV
 #cmakedefine CMAKE_USE_ELF_PARSER
 #cmakedefine CMAKE_USE_MACH_PARSER
-#cmakedefine CMake_HAVE_CXX_FALLTHROUGH
-#cmakedefine CMake_HAVE_CXX_GNU_FALLTHROUGH
-#cmakedefine CMake_HAVE_CXX_ATTRIBUTE_FALLTHROUGH
 #cmakedefine CMake_HAVE_CXX_MAKE_UNIQUE
 #define CMAKE_BIN_DIR "/@CMAKE_BIN_DIR@"
 #define CMAKE_DATA_DIR "/@CMAKE_DATA_DIR@"
 
-#if defined(CMake_HAVE_CXX_FALLTHROUGH)
-#define CM_FALLTHROUGH [[fallthrough]]
-#elif defined(CMake_HAVE_CXX_GNU_FALLTHROUGH)
-#define CM_FALLTHROUGH [[gnu::fallthrough]]
-#elif defined(CMake_HAVE_CXX_ATTRIBUTE_FALLTHROUGH)
-#define CM_FALLTHROUGH __attribute__((fallthrough))
-#else
-#define CM_FALLTHROUGH
-#endif
+#define CM_FALLTHROUGH cmsys_FALLTHROUGH
 
 #define CM_DISABLE_COPY(Class)                                                \
   Class(Class const&) = delete;                                               \