diff --git a/mlir/CMakeLists.txt b/mlir/CMakeLists.txt index bbbcb0703f20f4..ac120aad0d1eda 100644 --- a/mlir/CMakeLists.txt +++ b/mlir/CMakeLists.txt @@ -77,6 +77,15 @@ check_c_compiler_flag("-Werror=mismatched-tags" C_SUPPORTS_WERROR_MISMATCHED_TAG append_if(C_SUPPORTS_WERROR_MISMATCHED_TAGS "-Werror=mismatched-tags" CMAKE_C_FLAGS) append_if(C_SUPPORTS_WERROR_MISMATCHED_TAGS "-Werror=mismatched-tags" CMAKE_CXX_FLAGS) +# Silence a false positive GCC -Wunused-but-set-parameter warning in constexpr +# cases, by marking SelectedCase as used. See +# https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85827 for details. The issue is +# fixed in GCC 10. +if(CMAKE_CXX_COMPILER_ID MATCHES "GNU" AND CMAKE_CXX_COMPILER_VERSION VERSION_LESS "10.0") + check_cxx_compiler_flag("-Wno-unused-but-set-parameter" CXX_SUPPORTS_WNO_UNUSED_BUT_SET_PARAMETER) + append_if(CXX_SUPPORTS_WNO_UNUSED_BUT_SET_PARAMETER "-Wno-unused-but-set-parameter" CMAKE_CXX_FLAGS) +endif() + # Installing the headers and docs needs to depend on generating any public # tablegen'd targets. # mlir-generic-headers are dialect-independent. diff --git a/mlir/lib/Dialect/Transform/IR/TransformOps.cpp b/mlir/lib/Dialect/Transform/IR/TransformOps.cpp index 0e20b379cc2a3e..f8eb20e1a1da9c 100644 --- a/mlir/lib/Dialect/Transform/IR/TransformOps.cpp +++ b/mlir/lib/Dialect/Transform/IR/TransformOps.cpp @@ -1996,7 +1996,7 @@ void transform::SplitHandleOp::getEffects( LogicalResult transform::SplitHandleOp::verify() { if (getOverflowResult().has_value() && - !(*getOverflowResult() >= 0 && *getOverflowResult() < getNumResults())) + !(*getOverflowResult() < getNumResults())) return emitOpError("overflow_result is not a valid result index"); return success(); }