Tests: Fix new GCC 12 warnings

This commit is contained in:
Daniel Bertalan 2022-05-07 17:49:44 +02:00 committed by Andreas Kling
parent cccc001ded
commit 699bd9afc6
Notes: sideshowbarker 2024-07-17 12:00:11 +09:00
3 changed files with 10 additions and 9 deletions

View File

@ -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)

View File

@ -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);
}

View File

@ -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;