diff --git a/cmake/OpenCVCompilerOptions.cmake b/cmake/OpenCVCompilerOptions.cmake index b9293df1b6..774103af3a 100644 --- a/cmake/OpenCVCompilerOptions.cmake +++ b/cmake/OpenCVCompilerOptions.cmake @@ -120,7 +120,9 @@ if(CV_GCC OR CV_CLANG) add_extra_compiler_option(-Wno-unnamed-type-template-args) add_extra_compiler_option(-Wno-comment) if(NOT OPENCV_SKIP_IMPLICIT_FALLTHROUGH - AND NOT " ${CMAKE_CXX_FLAGS} ${OPENCV_EXTRA_FLAGS} ${OPENCV_EXTRA_CXX_FLAGS}" MATCHES "implicit-fallthrough") + AND NOT " ${CMAKE_CXX_FLAGS} ${OPENCV_EXTRA_FLAGS} ${OPENCV_EXTRA_CXX_FLAGS}" MATCHES "implicit-fallthrough" + AND (CV_GCC AND NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 7.0.0) + ) add_extra_compiler_option(-Wimplicit-fallthrough=3) endif() if(CV_GCC AND CMAKE_CXX_COMPILER_VERSION VERSION_EQUAL 7.2.0) diff --git a/modules/videoio/src/cap.cpp b/modules/videoio/src/cap.cpp index 33f7973636..67e1befca2 100644 --- a/modules/videoio/src/cap.cpp +++ b/modules/videoio/src/cap.cpp @@ -65,7 +65,7 @@ using namespace std; #if defined(__clang__) #pragma clang diagnostic ignored "-Wimplicit-fallthrough" #endif -#if defined(__GNUC__) +#if defined(__GNUC__) && __GNUC__ >= 7 #pragma GCC diagnostic ignored "-Wimplicit-fallthrough" #endif