From 101915c9b73cfe434457f380de4fbaea03430851 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rg=20Thalheim?= Date: Tue, 2 Jul 2024 08:35:56 +0200 Subject: [PATCH] enable -Werror=unused-result Inspired by https://git.lix.systems/lix-project/lix/commit/010ff57ebb40f1a9aaff99867d2886f0e59f774a From the original PR: > We do not have any of these warnings appearing at the moment, but > it seems like a good idea to enable [[nodiscard]] checking anyway. > Once we start introducing more functions with must-use conditions we will > need such checking, and the rust stdlib has proven them very useful. --- Makefile | 2 +- src/libfetchers/meson.build | 1 + src/libstore/meson.build | 1 + src/libutil-c/meson.build | 1 + src/libutil/meson.build | 1 + src/perl/meson.build | 5 ++++- tests/unit/libutil-support/meson.build | 1 + tests/unit/libutil/meson.build | 1 + 8 files changed, 11 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile index 132fe29cc..bb64a104e 100644 --- a/Makefile +++ b/Makefile @@ -92,7 +92,7 @@ ifdef HOST_WINDOWS GLOBAL_LDFLAGS += -Wl,--export-all-symbols endif -GLOBAL_CXXFLAGS += -g -Wall -Wdeprecated-copy -Wignored-qualifiers -Wimplicit-fallthrough -include $(buildprefix)config.h -std=c++2a -I src +GLOBAL_CXXFLAGS += -g -Wall -Wdeprecated-copy -Wignored-qualifiers -Wimplicit-fallthrough -Werror=unused-result -include $(buildprefix)config.h -std=c++2a -I src # Include the main lib, causing rules to be defined diff --git a/src/libfetchers/meson.build b/src/libfetchers/meson.build index cab8d63eb..d7975ac65 100644 --- a/src/libfetchers/meson.build +++ b/src/libfetchers/meson.build @@ -58,6 +58,7 @@ add_project_arguments( '-Wimplicit-fallthrough', '-Werror=switch', '-Werror=switch-enum', + '-Werror=unused-result', '-Wdeprecated-copy', '-Wignored-qualifiers', # Enable assertions in libstdc++ by default. Harmless on libc++. Benchmarked diff --git a/src/libstore/meson.build b/src/libstore/meson.build index a605b43e1..d9237c55a 100644 --- a/src/libstore/meson.build +++ b/src/libstore/meson.build @@ -164,6 +164,7 @@ add_project_arguments( '-Wimplicit-fallthrough', '-Werror=switch', '-Werror=switch-enum', + '-Werror=unused-result', '-Wdeprecated-copy', '-Wignored-qualifiers', # Enable assertions in libstdc++ by default. Harmless on libc++. Benchmarked diff --git a/src/libutil-c/meson.build b/src/libutil-c/meson.build index a2b020818..5de288e18 100644 --- a/src/libutil-c/meson.build +++ b/src/libutil-c/meson.build @@ -34,6 +34,7 @@ add_project_arguments( '-Wimplicit-fallthrough', '-Werror=switch', '-Werror=switch-enum', + '-Werror=unused-result', '-Wdeprecated-copy', '-Wignored-qualifiers', # Enable assertions in libstdc++ by default. Harmless on libc++. Benchmarked diff --git a/src/libutil/meson.build b/src/libutil/meson.build index 9d0b28539..099c0c65f 100644 --- a/src/libutil/meson.build +++ b/src/libutil/meson.build @@ -143,6 +143,7 @@ add_project_arguments( '-Wimplicit-fallthrough', '-Werror=switch', '-Werror=switch-enum', + '-Werror=unused-result', '-Wdeprecated-copy', '-Wignored-qualifiers', # Enable assertions in libstdc++ by default. Harmless on libc++. Benchmarked diff --git a/src/perl/meson.build b/src/perl/meson.build index 06abb4f2e..5fe7e1e28 100644 --- a/src/perl/meson.build +++ b/src/perl/meson.build @@ -23,11 +23,14 @@ nix_perl_conf.set('PACKAGE_VERSION', meson.project_version()) # set error arguments #------------------------------------------------- error_args = [ + '-Werror=unused-result', + '-Wdeprecated-copy', + '-Wdeprecated-declarations', + '-Wignored-qualifiers', '-Wno-pedantic', '-Wno-non-virtual-dtor', '-Wno-unused-parameter', '-Wno-variadic-macros', - '-Wdeprecated-declarations', '-Wno-missing-field-initializers', '-Wno-unknown-warning-option', '-Wno-unused-variable', diff --git a/tests/unit/libutil-support/meson.build b/tests/unit/libutil-support/meson.build index 5912c00e0..c0345a6ee 100644 --- a/tests/unit/libutil-support/meson.build +++ b/tests/unit/libutil-support/meson.build @@ -28,6 +28,7 @@ add_project_arguments( '-Wimplicit-fallthrough', '-Werror=switch', '-Werror=switch-enum', + '-Werror=unused-result', '-Wdeprecated-copy', '-Wignored-qualifiers', # Enable assertions in libstdc++ by default. Harmless on libc++. Benchmarked diff --git a/tests/unit/libutil/meson.build b/tests/unit/libutil/meson.build index 56147686b..cc13c4364 100644 --- a/tests/unit/libutil/meson.build +++ b/tests/unit/libutil/meson.build @@ -34,6 +34,7 @@ add_project_arguments( '-Wimplicit-fallthrough', '-Werror=switch', '-Werror=switch-enum', + '-Werror=unused-result', '-Wdeprecated-copy', '-Wignored-qualifiers', # Enable assertions in libstdc++ by default. Harmless on libc++. Benchmarked