From 699bd9afc6bd5e441caf08a188d5ed25656bde3c Mon Sep 17 00:00:00 2001 From: Daniel Bertalan Date: Sat, 7 May 2022 17:49:44 +0200 Subject: [PATCH] Tests: Fix new GCC 12 warnings --- Tests/Kernel/TestSigAltStack.cpp | 10 +++------- Tests/Kernel/crash.cpp | 6 ++++++ Tests/Kernel/siginfo-example.cpp | 3 +-- 3 files changed, 10 insertions(+), 9 deletions(-) diff --git a/Tests/Kernel/TestSigAltStack.cpp b/Tests/Kernel/TestSigAltStack.cpp index 0bcc64d1914..1c4aa66901d 100644 --- a/Tests/Kernel/TestSigAltStack.cpp +++ b/Tests/Kernel/TestSigAltStack.cpp @@ -22,17 +22,13 @@ static void signal_handler(int) _exit(0); } -#ifdef __clang__ -# pragma clang diagnostic push -# pragma clang diagnostic ignored "-Winfinite-recursion" -#endif +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Winfinite-recursion" static size_t infinite_recursion(size_t input) { return infinite_recursion(input) + 1; } -#ifdef __clang__ -# pragma clang diagnostic pop -#endif +#pragma GCC diagnostic pop // This test can only pass with sigaltstack correctly enabled, as otherwise the SIGSEGV signal handler itself would also fault due to the overflown stack. TEST_CASE(success_case) diff --git a/Tests/Kernel/crash.cpp b/Tests/Kernel/crash.cpp index 0372e164fef..d245e44a4e4 100644 --- a/Tests/Kernel/crash.cpp +++ b/Tests/Kernel/crash.cpp @@ -139,7 +139,10 @@ int main(int argc, char** argv) return Crash::Failure::UnexpectedError; free(uninitialized_memory); +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wuse-after-free" [[maybe_unused]] volatile auto x = uninitialized_memory[4][0]; +#pragma GCC diagnostic pop return Crash::Failure::DidNotCrash; }).run(run_type); } @@ -161,8 +164,11 @@ int main(int argc, char** argv) if (!uninitialized_memory) return Crash::Failure::UnexpectedError; +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wuse-after-free" free(uninitialized_memory); uninitialized_memory[4][0] = 1; +#pragma GCC diagnostic pop return Crash::Failure::DidNotCrash; }).run(run_type); } diff --git a/Tests/Kernel/siginfo-example.cpp b/Tests/Kernel/siginfo-example.cpp index 6495570eca3..9a96e64a8d6 100644 --- a/Tests/Kernel/siginfo-example.cpp +++ b/Tests/Kernel/siginfo-example.cpp @@ -21,8 +21,7 @@ bool volatile signal_was_delivered = false; static void signal_handler(int sig, siginfo_t* sig_info, void* u_context) { - int x; - stack_ptr = &x; + stack_ptr = __builtin_frame_address(0); signal_was_delivered = true; saved_signal = sig;