Bug #119242 8.4.7 fails to build with clang 21
Submitted: 27 Oct 12:13 Modified: 27 Oct 12:35
Reporter: Laurynas Biveinis (OCA) Email Updates:
Status: Open Impact on me:
None 
Category:MySQL Server: Compiling Severity:S3 (Non-critical)
Version:8.4.7 OS:MacOS (26.0.1)
Assigned to: CPU Architecture:ARM

[27 Oct 12:13] Laurynas Biveinis
Description:
With CMake options (including bug 119239 workaround):
-DCMAKE_EXPORT_COMPILE_COMMANDS=ON -DFORCE_UNSUPPORTED_COMPILER=ON -DCMAKE_BUILD_TYPE=Debug -DWITH_DEBUG=ON -DMYSQL_MAINTAINER_MODE=ON -DWITH_SYSTEM_LIBS=ON -DWITH_NDBCLUSTER_STORAGE_ENGINE=OFF -DFORCE_COLORED_OUTPUT=ON -DCMAKE_CXX_FLAGS=-Wno-uninitialized-const-pointer -g -DCMAKE_CXX_FLAGS_DEBUG=-Wno-uninitialized-const-pointer -g -DCMAKE_CXX_FLAGS_RELEASE=-O2 -DNDEBUG -Wno-uninitialized-const-pointer -g

the build results in

FAILED: [code=1] libmysql/CMakeFiles/clientlib.dir/__/sql-common/mysql_native_authentication_client.cc.o
/opt/homebrew/opt/llvm/bin/clang++ -DHAVE_TLSv13 -DLZ4_DISABLE_DEPRECATE_WARNINGS -D_USE_MATH_DEFINES -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -I/Users/laurynas/vilniusdb/mysql-8.4.7/_build-debug-llvm -I/Users/laurynas/vilniusdb/mysql-8.4.7/_build-debug-llvm/include -I/Users/laurynas/vilniusdb/mysql-8.4.7 -I/Users/laurynas/vilniusdb/mysql-8.4.7/include -I/Users/laurynas/vilniusdb/mysql-8.4.7/libs -isystem /Users/laurynas/vilniusdb/mysql-8.4.7/extra/rapidjson/include -isystem /opt/homebrew/opt/openssl/include -isystem /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/editline -isystem /opt/homebrew/include -isystem /Users/laurynas/vilniusdb/mysql-8.4.7/extra/zlib/zlib-1.3.1 -isystem /Users/laurynas/vilniusdb/mysql-8.4.7/_build-debug-llvm/extra/zlib/zlib-1.3.1 -std=c++20 -fno-omit-frame-pointer -ftls-model=initial-exec -Wno-uninitialized-const-pointer -g -Wall -Wextra -Wformat-security -Wvla -Wundef -Wmissing-format-attribute -Woverloaded-virtual -Wcast-qual -Wno-null-conversion -Wno-unused-private-field -Wconditional-uninitialized -Wdeprecated -Wno-deprecated-declarations -Wno-shorten-64-to-32 -Wextra-semi -Wheader-hygiene -Wnon-virtual-dtor -Wundefined-reinterpret-cast -Wrange-loop-analysis -Winconsistent-missing-destructor-override -Winconsistent-missing-override -Wshadow-field -Wstring-concatenation -Wdocumentation -Wno-documentation-deprecated-sync -Werror -DSAFE_MUTEX -DENABLED_DEBUG_SYNC -Wno-uninitialized-const-pointer -g -arch arm64 -fPIC   -D CLIENT_PROTOCOL_TRACING -fcolor-diagnostics -Wshadow-uncaptured-local -MD -MT libmysql/CMakeFiles/clientlib.dir/__/sql-common/mysql_native_authentication_client.cc.o -MF libmysql/CMakeFiles/clientlib.dir/__/sql-common/mysql_native_authentication_client.cc.o.d  --language=c++  -o libmysql/CMakeFiles/clientlib.dir/__/sql-common/mysql_native_authentication_client.cc.o -c /Users/laurynas/vilniusdb/mysql-8.4.7/sql-common/mysql_native_authentication_client.cc
/Users/laurynas/vilniusdb/mysql-8.4.7/sql-common/mysql_native_authentication_client.cc:390:37: error: variable 'pkt' may be uninitialized when used here [-Werror,-Wconditional-uninitialized]
  390 |         scramble(scrambled, (char *)pkt, mysql->passwd);
      |                                     ^~~
/Users/laurynas/vilniusdb/mysql-8.4.7/sql-common/mysql_native_authentication_client.cc:350:13: note: initialize the variable 'pkt' to silence this warning
  350 |   uchar *pkt;
      |             ^
      |              = nullptr
1 error generated.

How to repeat:
See above
[27 Oct 12:21] Laurynas Biveinis
Adding -Wno-conditional-uninitialized proceeds to

FAILED: [code=1] storage/csv/CMakeFiles/csv.dir/ha_tina.cc.o
/opt/homebrew/opt/llvm/bin/clang++ -DHAVE_TLSv13 -DLZ4_DISABLE_DEPRECATE_WARNINGS -DMYSQL_SERVER -DRAPIDJSON_HAS_STDSTRING=1 -DRAPIDJSON_NO_SIZETYPEDEFINE -DRAPIDJSON_SCHEMA_USE_INTERNALREGEX=0 -DRAPIDJSON_SCHEMA_USE_STDREGEX=1 -D_USE_MATH_DEFINES -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -I/Users/laurynas/vilniusdb/mysql-8.4.7/_build-debug-llvm -I/Users/laurynas/vilniusdb/mysql-8.4.7/_build-debug-llvm/include -I/Users/laurynas/vilniusdb/mysql-8.4.7 -I/Users/laurynas/vilniusdb/mysql-8.4.7/include -I/Users/laurynas/vilniusdb/mysql-8.4.7/libs -isystem /Users/laurynas/vilniusdb/mysql-8.4.7/extra/rapidjson/include -isystem /opt/homebrew/opt/openssl/include -isystem /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/editline -isystem /opt/homebrew/include -isystem /Users/laurynas/vilniusdb/mysql-8.4.7/extra/zlib/zlib-1.3.1 -isystem /Users/laurynas/vilniusdb/mysql-8.4.7/_build-debug-llvm/extra/zlib/zlib-1.3.1 -std=c++20 -fno-omit-frame-pointer -ftls-model=initial-exec -Wno-uninitialized-const-pointer -Wno-conditional-uninitialized -g -Wall -Wextra -Wformat-security -Wvla -Wundef -Wmissing-format-attribute -Woverloaded-virtual -Wcast-qual -Wno-null-conversion -Wno-unused-private-field -Wconditional-uninitialized -Wdeprecated -Wno-deprecated-declarations -Wno-shorten-64-to-32 -Wextra-semi -Wheader-hygiene -Wnon-virtual-dtor -Wundefined-reinterpret-cast -Wrange-loop-analysis -Winconsistent-missing-destructor-override -Winconsistent-missing-override -Wshadow-field -Wstring-concatenation -Wdocumentation -Wno-documentation-deprecated-sync -Werror -DSAFE_MUTEX -DENABLED_DEBUG_SYNC -Wno-uninitialized-const-pointer -Wno-conditional-uninitialized -g -std=gnu++20 -arch arm64 -fPIC -fcolor-diagnostics -MD -MT storage/csv/CMakeFiles/csv.dir/ha_tina.cc.o -MF storage/csv/CMakeFiles/csv.dir/ha_tina.cc.o.d  --language=c++  -o storage/csv/CMakeFiles/csv.dir/ha_tina.cc.o -c /Users/laurynas/vilniusdb/mysql-8.4.7/storage/csv/ha_tina.cc
In file included from /Users/laurynas/vilniusdb/mysql-8.4.7/storage/csv/ha_tina.cc:70:
In file included from /Users/laurynas/vilniusdb/mysql-8.4.7/sql/sql_lex.h:77:
In file included from /Users/laurynas/vilniusdb/mysql-8.4.7/sql/parser_yystype.h:47:
In file included from /Users/laurynas/vilniusdb/mysql-8.4.7/sql/opt_hints.h:43:
In file included from /Users/laurynas/vilniusdb/mysql-8.4.7/sql/sql_show.h:34:
In file included from /Users/laurynas/vilniusdb/mysql-8.4.7/sql/sql_select.h:47:
In file included from /Users/laurynas/vilniusdb/mysql-8.4.7/sql/sql_cmd_dml.h:30:
/Users/laurynas/vilniusdb/mysql-8.4.7/sql/sql_prepare.h:235:11: error: virtual method '~Prepared_statement' is inside a 'final' class and can never be overridden [-Werror,-Wunnecessary-virtual-specifier]
  235 |   virtual ~Prepared_statement();
      |           ^
1 error generated.
[27 Oct 12:35] Laurynas Biveinis
With -Wno-unnecessary-virtual-specifier the build completes