Bug #120650 -Wunused-but-set-variable failing build
Submitted: 9 Jun 19:25
Reporter: Laurynas Biveinis (OCA) Email Updates:
Status: Open Impact on me:
None 
Category:MySQL Server: Compiling Severity:S3 (Non-critical)
Version:8.0.46 OS:MacOS (26.5.1)
Assigned to: CPU Architecture:ARM

[9 Jun 19:25] Laurynas Biveinis
Description:
FAILED: [code=1] storage/innobase/CMakeFiles/innobase.dir/fts/fts0pars.cc.o
/opt/homebrew/opt/llvm@18/bin/clang++ -DBOOST_NO_CXX98_FUNCTION_BASE -DCOMPILER_HINTS -DHAVE_IB_GCC_ATOMIC_THREAD_FENCE=1 -DHAVE_IB_GCC_SYNC_SYNCHRONISE=1 -DHAVE_LZ4=1 -DHAVE_NANOSLEEP=1 -DHAVE_TLSv13 -DLOG_SUBSYSTEM_TAG=\"InnoDB\" -DLZ4_DISABLE_DEPRECATE_WARNINGS -DMUTEX_EVENT -DMYSQL_SERVER -DPFS_DIRECT_CALL -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.0.46/_build-llvm-18-debug -I/Users/laurynas/vilniusdb/mysql-8.0.46/_build-llvm-18-debug/include -I/Users/laurynas/vilniusdb/mysql-8.0.46 -I/Users/laurynas/vilniusdb/mysql-8.0.46/include -I/Users/laurynas/vilniusdb/mysql-8.0.46/storage/innobase -I/Users/laurynas/vilniusdb/mysql-8.0.46/storage/innobase/include -I/Users/laurynas/vilniusdb/mysql-8.0.46/storage/innobase/handler -I/Users/laurynas/vilniusdb/mysql-8.0.46/sql -I/Users/laurynas/vilniusdb/mysql-8.0.46/sql/auth -isystem /Users/laurynas/vilniusdb/mysql-8.0.46/extra/rapidjson/include -isystem /opt/homebrew/opt/openssl@1.1/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.0.46/extra/zlib/zlib-1.3.2 -isystem /Users/laurynas/vilniusdb/mysql-8.0.46/_build-llvm-18-debug/extra/zlib/zlib-1.3.2 -isystem /opt/homebrew/opt/icu4c/include -isystem /Users/laurynas/vilniusdb/mysql-8.0.46/extra/unordered_dense/unordered_dense-4.4.0/include -isystem /Users/laurynas/vilniusdb/mysql-8.0.46/plugin/x/client -isystem /Users/laurynas/vilniusdb/mysql-8.0.46/_build-llvm-18-debug/plugin/x/generated/protobuf_lite -isystem /Users/laurynas/vilniusdb/mysql-8.0.46/_build-llvm-18-debug/plugin/x/generated -std=c++17 -fno-omit-frame-pointer -ftls-model=initial-exec -Wno-invalid-specialization -g -Wno-uninitialized-const-pointer -Wno-conditional-uninitialized -Wno-unnecessary-virtual-specifier -Wno-nonnull -Wno-unknown-warning-option -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 -Werror -Wno-unused-parameter -Wno-cast-qual -DSAFE_MUTEX -DENABLED_DEBUG_SYNC -Wno-invalid-specialization -g -Wno-uninitialized-const-pointer -Wno-conditional-uninitialized -Wno-unnecessary-virtual-specifier -Wno-nonnull -Wno-unknown-warning-option -DUNIV_DEBUG -arch arm64 -fPIC -fcolor-diagnostics -MD -MT storage/innobase/CMakeFiles/innobase.dir/fts/fts0pars.cc.o -MF storage/innobase/CMakeFiles/innobase.dir/fts/fts0pars.cc.o.d  --language=c++  -o storage/innobase/CMakeFiles/innobase.dir/fts/fts0pars.cc.o -c /Users/laurynas/vilniusdb/mysql-8.0.46/storage/innobase/fts/fts0pars.cc
fts0pars.cc:1177:9: error: variable 'ftsnerrs' set but not used [-Werror,-Wunused-but-set-variable]
 1177 |     int yynerrs;
      |         ^
/Users/laurynas/vilniusdb/mysql-8.0.46/storage/innobase/fts/fts0pars.cc:71:25: note: expanded from macro 'yynerrs'
   71 | #define yynerrs         ftsnerrs
      |                         ^
1 error generated.

If adding -Wno-unused-but-set-variable to C++ flags, then

[1866/3836] Building C object libmysql/CMakeFiles/libmysql_api_test.dir/api_test.c.o
FAILED: [code=1] libmysql/CMakeFiles/libmysql_api_test.dir/api_test.c.o
/opt/homebrew/opt/llvm@18/bin/clang -DBOOST_NO_CXX98_FUNCTION_BASE -DHAVE_TLSv13 -DLZ4_DISABLE_DEPRECATE_WARNINGS -D_USE_MATH_DEFINES -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -I/Users/laurynas/vilniusdb/mysql-8.0.46/_build-llvm-18-debug -I/Users/laurynas/vilniusdb/mysql-8.0.46/_build-llvm-18-debug/include -I/Users/laurynas/vilniusdb/mysql-8.0.46 -I/Users/laurynas/vilniusdb/mysql-8.0.46/include -isystem /Users/laurynas/vilniusdb/mysql-8.0.46/extra/rapidjson/include -isystem /opt/homebrew/opt/openssl@1.1/include -isystem /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/editline -isystem /opt/homebrew/include -fno-omit-frame-pointer -ftls-model=initial-exec  -Wall -Wextra -Wformat-security -Wvla -Wundef -Wmissing-format-attribute -Wwrite-strings -Wconditional-uninitialized -Wextra-semi -Wmissing-noreturn -Wunreachable-code-break -Wunreachable-code-return -Werror -DSAFE_MUTEX -DENABLED_DEBUG_SYNC -g -arch arm64 -fPIE   -D CLIENT_PROTOCOL_TRACING -fcolor-diagnostics -Wshadow-uncaptured-local -Wno-missing-profile -MD -MT libmysql/CMakeFiles/libmysql_api_test.dir/api_test.c.o -MF libmysql/CMakeFiles/libmysql_api_test.dir/api_test.c.o.d -o libmysql/CMakeFiles/libmysql_api_test.dir/api_test.c.o -c /Users/laurynas/vilniusdb/mysql-8.0.46/_build-llvm-18-debug/libmysql/api_test.c
error: unknown warning option '-Wno-missing-profile' [-Werror,-Wunknown-warning-option]

Adding -Wno-unknown-warning-option to CMAKE_C_FLAGS allows build to complete

How to repeat:
CMake options 

-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 -DDOWNLOAD_BOOST=ON -DWITH_BOOST=~/vilniusdb/mysql-boost/ -DFORCE_COLORED_OUTPUT=ON -DCMAKE_CXX_FLAGS=-Wno-invalid-specialization -g -Wno-uninitialized-const-pointer -Wno-conditional-uninitialized -Wno-unnecessary-virtual-specifier -Wno-nonnull -Wno-unknown-warning-option -DCMAKE_CXX_FLAGS_DEBUG=-Wno-invalid-specialization -g -Wno-uninitialized-const-pointer -Wno-conditional-uninitialized -Wno-unnecessary-virtual-specifier -Wno-nonnull -Wno-unknown-warning-option -DCMAKE_CXX_FLAGS_RELEASE=-O2 -DNDEBUG -Wno-invalid-specialization -g -Wno-uninitialized-const-pointer -Wno-conditional-uninitialized -Wno-unnecessary-virtual-specifier -Wno-nonnull -Wno-unknown-warning-option

(these include workarounds for bug 119238, bug 119329, bug 119242, bug 119246)