From 0c80ddb519bd06efbd7ccf2a2487b2503cd16db5 Mon Sep 17 00:00:00 2001 From: Daniel Black Date: Wed, 11 Jun 2025 15:07:55 +1000 Subject: [PATCH] MDEV-36542: apply clang -Werror=uninitialized to catch dubious initializations clang has rather correct error detection in its implementation of the -Werror=uninitialized* set of C/CXX flags. Use them by default. --- cmake/maintainer.cmake | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/cmake/maintainer.cmake b/cmake/maintainer.cmake index 1f40324d5ca..8a13ad47e9d 100644 --- a/cmake/maintainer.cmake +++ b/cmake/maintainer.cmake @@ -68,6 +68,14 @@ IF(CMAKE_C_COMPILER_ID STREQUAL "GNU" AND CMAKE_C_COMPILER_VERSION VERSION_LESS SET(MY_ERROR_FLAGS ${MY_ERROR_FLAGS} -Wno-error=non-virtual-dtor) # gcc bug 7302 ENDIF() +FOREACH(LANG C CXX) + IF(CMAKE_${LANG}_COMPILER_ID MATCHES "Clang") + MY_CHECK_AND_SET_COMPILER_FLAG(-Werror=uninitialized-explicit-init) + MY_CHECK_AND_SET_COMPILER_FLAG(-Werror=uninitialized-const-reference) + SET(CMAKE_${LANG}_FLAGS "${CMAKE_${LANG}_FLAGS} -Werror=uninitialized") + ENDIF() +ENDFOREACH() + IF(MYSQL_MAINTAINER_MODE MATCHES "OFF|WARN") RETURN() ELSEIF(MYSQL_MAINTAINER_MODE MATCHES "AUTO")