From a636a16a714f23aa452473e8784b8a828d6dd4cd Mon Sep 17 00:00:00 2001 From: MCJ Vasseur <14887731+vmcj@users.noreply.github.com> Date: Fri, 1 Aug 2025 17:20:00 +0200 Subject: [PATCH 1/4] Explicit ignore the return code for failed error messages This gave a compiler warning. We only use the function in case something is already wrong so signalling further that the error failed doesn't help us anymore. --- judge/runguard.cc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/judge/runguard.cc b/judge/runguard.cc index 549c0bb6c5..0b736ef867 100644 --- a/judge/runguard.cc +++ b/judge/runguard.cc @@ -233,7 +233,7 @@ void verbose(const char *format, ...) void verbose_from_signalhandler(const char* msg) { if (!be_quiet && be_verbose) { - write(STDERR_FILENO, msg, strlen(msg)); + std::ignore = write(STDERR_FILENO, msg, strlen(msg)); } } @@ -242,7 +242,7 @@ void warning_from_signalhandler(const char* msg) if (!be_quiet) { // Do not include timing here, as it wouldn't be safe from a signalhandler. // TODO: Consider rewriting using clock_gettime in the future. - write(STDERR_FILENO, msg, strlen(msg)); + std::ignore = write(STDERR_FILENO, msg, strlen(msg)); } } From bbe863818089761e54c7687261b0571407669c45 Mon Sep 17 00:00:00 2001 From: MCJ Vasseur <14887731+vmcj@users.noreply.github.com> Date: Sat, 9 Aug 2025 16:12:31 +0200 Subject: [PATCH 2/4] Fails in CI without it --- judge/runguard.cc | 1 + 1 file changed, 1 insertion(+) diff --git a/judge/runguard.cc b/judge/runguard.cc index 0b736ef867..670d3de560 100644 --- a/judge/runguard.cc +++ b/judge/runguard.cc @@ -64,6 +64,7 @@ #include #include #include +#include #define PROGRAM "runguard" #define VERSION DOMJUDGE_VERSION "/" REVISION From 0c3a9f20e2ce9d0cdc8e878c496eb1006d4e4dd0 Mon Sep 17 00:00:00 2001 From: MCJ Vasseur <14887731+vmcj@users.noreply.github.com> Date: Sat, 9 Aug 2025 16:17:40 +0200 Subject: [PATCH 3/4] Does this work. --- judge/runguard.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/judge/runguard.cc b/judge/runguard.cc index 670d3de560..8143a7ef37 100644 --- a/judge/runguard.cc +++ b/judge/runguard.cc @@ -234,7 +234,7 @@ void verbose(const char *format, ...) void verbose_from_signalhandler(const char* msg) { if (!be_quiet && be_verbose) { - std::ignore = write(STDERR_FILENO, msg, strlen(msg)); + static_cast(write(STDERR_FILENO, msg, strlen(msg))); } } From edb845f54ac9aae9ec8eb90ad96d96244206539b Mon Sep 17 00:00:00 2001 From: MCJ Vasseur <14887731+vmcj@users.noreply.github.com> Date: Sat, 9 Aug 2025 16:36:43 +0200 Subject: [PATCH 4/4] Should need C++17 --- judge/runguard.cc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/judge/runguard.cc b/judge/runguard.cc index 8143a7ef37..ca92a7785b 100644 --- a/judge/runguard.cc +++ b/judge/runguard.cc @@ -234,7 +234,7 @@ void verbose(const char *format, ...) void verbose_from_signalhandler(const char* msg) { if (!be_quiet && be_verbose) { - static_cast(write(STDERR_FILENO, msg, strlen(msg))); + [[maybe_unused]] auto r = write(STDERR_FILENO, msg, strlen(msg)); } } @@ -243,7 +243,7 @@ void warning_from_signalhandler(const char* msg) if (!be_quiet) { // Do not include timing here, as it wouldn't be safe from a signalhandler. // TODO: Consider rewriting using clock_gettime in the future. - std::ignore = write(STDERR_FILENO, msg, strlen(msg)); + [[maybe_unused]] auto r = write(STDERR_FILENO, msg, strlen(msg)); } }