Bug #121385 "ignoring return value of function declared with 'nodiscard' attribute"
Submitted: 28 Sep 11:48
Reporter: Laurynas Biveinis (OCA) Email Updates:
Status: Open Impact on me:
None 
Category:MySQL Router Severity:S3 (Non-critical)
Version:26.10.0-er OS:MacOS (27.0)
Assigned to: CPU Architecture:ARM

[28 Sep 11:48] Laurynas Biveinis
Description:
With CMake options
-DCMAKE_BUILD_TYPE=Debug -DWITH_DEBUG=ON -DMYSQL_MAINTAINER_MODE=ON -DWITH_SYSTEM_LIBS=ON -DWITH_NDBCLUSTER_STORAGE_ENGINE=OFF -DCMAKE_CXX_FLAGS=-g -DCMAKE_CXX_FLAGS_DEBUG=-g -DCMAKE_CXX_FLAGS_RELEASE="-O2 -DNDEBUG -g"

the compilation fails at

FAILED: [code=1] router/src/destination_status/src/CMakeFiles/destination_status_object.dir/destination_status_component.cc.o
/usr/bin/c++ -DLZ4_DISABLE_DEPRECATE_WARNINGS -DRAPIDJSON_HAS_STDSTRING=1 -DRAPIDJSON_NO_SIZETYPEDEFINE -DRAPIDJSON_SCHEMA_USE_INTERNALREGEX=0 -DRAPIDJSON_SCHEMA_USE_STDREGEX=1 -DROUTER_CLIENT_PLUGINS_ARE_BUNDLED -D_USE_MATH_DEFINES -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -Ddestination_status_object_EXPORTS=1 -I/Users/laurynas/vilniusdb/mysql-26.10.0-er/_build-debug -I/Users/laurynas/vilniusdb/mysql-26.10.0-er/_build-debug/include -I/Users/laurynas/vilniusdb/mysql-26.10.0-er -I/Users/laurynas/vilniusdb/mysql-26.10.0-er/include -I/Users/laurynas/vilniusdb/mysql-26.10.0-er/libs -I/Users/laurynas/vilniusdb/mysql-26.10.0-er/_build-debug/router -I/Users/laurynas/vilniusdb/mysql-26.10.0-er/_build-debug/router/include -I/Users/laurynas/vilniusdb/mysql-26.10.0-er/router/src/destination_status/src -I/Users/laurynas/vilniusdb/mysql-26.10.0-er/router/src/destination_status/src/../include -I/Users/laurynas/vilniusdb/mysql-26.10.0-er/_build-debug/router/src/destination_status/src/../include -I/Users/laurynas/vilniusdb/mysql-26.10.0-er/router/src/harness/src/../include -I/Users/laurynas/vilniusdb/mysql-26.10.0-er/_build-debug/router/src/harness/src/../include -I/Users/laurynas/vilniusdb/mysql-26.10.0-er/router/src/router/src/../include -I/Users/laurynas/vilniusdb/mysql-26.10.0-er/_build-debug/router/src/router/src/../include -I/Users/laurynas/vilniusdb/mysql-26.10.0-er/_build-debug/router/src/harness/src -I/Users/laurynas/vilniusdb/mysql-26.10.0-er/router/src/io/src/../include -I/Users/laurynas/vilniusdb/mysql-26.10.0-er/_build-debug/router/src/io/src/../include -I/Users/laurynas/vilniusdb/mysql-26.10.0-er/router/src/harness/include -I/Users/laurynas/vilniusdb/mysql-26.10.0-er/router/src/mysql_protocol/include -isystem /Users/laurynas/vilniusdb/mysql-26.10.0-er/extra/rapidjson/include -isystem /opt/homebrew/opt/openssl/include -isystem /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/editline -isystem /opt/homebrew/include -isystem /opt/homebrew/opt/icu4c/include -fno-omit-frame-pointer -ftls-model=initial-exec -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 -g -std=gnu++23 -arch arm64 -fPIC -fcolor-diagnostics -MD -MT router/src/destination_status/src/CMakeFiles/destination_status_object.dir/destination_status_component.cc.o -MF router/src/destination_status/src/CMakeFiles/destination_status_object.dir/destination_status_component.cc.o.d  --language=c++  -o router/src/destination_status/src/CMakeFiles/destination_status_object.dir/destination_status_component.cc.o -c /Users/laurynas/vilniusdb/mysql-26.10.0-er/router/src/destination_status/src/destination_status_component.cc
In file included from /Users/laurynas/vilniusdb/mysql-26.10.0-er/router/src/destination_status/src/destination_status_component.cc:32:
In file included from /Users/laurynas/vilniusdb/mysql-26.10.0-er/router/src/destination_status/src/unreachable_destinations_quarantine.h:35:
In file included from /Users/laurynas/vilniusdb/mysql-26.10.0-er/router/src/harness/src/../include/mysql/harness/destination_endpoint.h:33:
In file included from /Users/laurynas/vilniusdb/mysql-26.10.0-er/router/src/harness/src/../include/mysql/harness/net_ts/internet.h:54:
/Users/laurynas/vilniusdb/mysql-26.10.0-er/router/src/harness/src/../include/mysql/harness/net_ts/io_context.h:551:9: error: ignoring return value of function declared with 'nodiscard' attribute [-Werror,-Wunused-result]
  551 |         pending_timers_.extract(cur);
      |         ^~~~~~~~~~~~~~~~~~~~~~~ ~~~
/Users/laurynas/vilniusdb/mysql-26.10.0-er/router/src/harness/src/../include/mysql/harness/net_ts/io_context.h:529:14: note: in instantiation of member function 'net::io_context::timer_queue<net::basic_waitable_timer<std::chrono::steady_clock>>::~timer_queue' requested here
  529 |     explicit timer_queue(execution_context &ctx) : timer_queue_base{ctx} {
      |              ^
/Users/laurynas/vilniusdb/mysql-26.10.0-er/router/src/harness/src/../include/mysql/harness/net_ts/executor.h:220:24: note: in instantiation of member function 'net::io_context::timer_queue<net::basic_waitable_timer<std::chrono::steady_clock>>::timer_queue' requested here
  220 |         ServicePtr{new Service{*this, std::forward<Args>(args)...}});
      |                        ^
/Users/laurynas/vilniusdb/mysql-26.10.0-er/router/src/harness/src/../include/mysql/harness/net_ts/executor.h:252:15: note: in instantiation of function template specialization 'net::execution_context::add_service<net::io_context::timer_queue<net::basic_waitable_timer<std::chrono::steady_clock>>>' requested here
  252 |     svc = ctx.add_service<Service>();
      |               ^
/Users/laurynas/vilniusdb/mysql-26.10.0-er/router/src/harness/src/../include/mysql/harness/net_ts/io_context.h:851:24: note: in instantiation of function template specialization 'net::use_service<net::io_context::timer_queue<net::basic_waitable_timer<std::chrono::steady_clock>>>' requested here
  851 |     const auto count = use_service<timer_queue<Timer>>(*this).cancel(timer);
      |                        ^
/Users/laurynas/vilniusdb/mysql-26.10.0-er/router/src/harness/src/../include/mysql/harness/net_ts/timer.h:101:48: note: in instantiation of function template specialization 'net::io_context::cancel<net::basic_waitable_timer<std::chrono::steady_clock>>' requested here
  101 |   size_t cancel() { return executor_.context().cancel(*this); }
      |                                                ^
/Users/laurynas/vilniusdb/mysql-26.10.0-er/router/src/harness/src/../include/mysql/harness/net_ts/timer.h:81:29: note: in instantiation of member function 'net::basic_waitable_timer<std::chrono::steady_clock>::cancel' requested here
   81 |   ~basic_waitable_timer() { cancel(); }
      |                             ^
/Users/laurynas/vilniusdb/mysql-26.10.0-er/router/src/destination_status/src/unreachable_destinations_quarantine.h:205:5: note: in instantiation of member function 'net::basic_waitable_timer<std::chrono::steady_clock>::~basic_waitable_timer' requested here
  205 |     Unreachable_destination_candidate(
      |     ^
1 error generated.

How to repeat:
See above