mirror of
https://github.com/Kitware/CMake.git
synced 2026-01-07 14:20:06 -06:00
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.
This commit is contained in:
@@ -1,11 +0,0 @@
|
||||
int main(int argc, char* [])
|
||||
{
|
||||
int i = 3;
|
||||
switch (argc) {
|
||||
case 1:
|
||||
i = 0;
|
||||
__attribute__((fallthrough));
|
||||
default:
|
||||
return i;
|
||||
}
|
||||
}
|
||||
@@ -1,11 +0,0 @@
|
||||
int main(int argc, char* [])
|
||||
{
|
||||
int i = 3;
|
||||
switch (argc) {
|
||||
case 1:
|
||||
i = 0;
|
||||
[[fallthrough]];
|
||||
default:
|
||||
return i;
|
||||
}
|
||||
}
|
||||
@@ -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)
|
||||
|
||||
@@ -1,11 +0,0 @@
|
||||
int main(int argc, char* [])
|
||||
{
|
||||
int i = 3;
|
||||
switch (argc) {
|
||||
case 1:
|
||||
i = 0;
|
||||
[[gnu::fallthrough]];
|
||||
default:
|
||||
return i;
|
||||
}
|
||||
}
|
||||
@@ -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; \
|
||||
|
||||
Reference in New Issue
Block a user