From d1670f1e963039d0f16cfc30abdcea118b65504e Mon Sep 17 00:00:00 2001 From: Jon Turney Date: Fri, 7 Jun 2024 17:29:10 +0100 Subject: [PATCH] Cygwin: suppress a warning generated with w32api >= 12.0.0 w32api 12.0.0 adds the returns_twice attribute to RtlCaptureContext(). There's some data-flow interaction with using it inside a while loop which causes a maybe-uninitialized warning. ../../../../winsup/cygwin/exceptions.cc: In member function 'int _cygtls::call_signal_handler()': ../../../../winsup/cygwin/exceptions.cc:1720:33: error: '' may be used uninitialized in this function [-Werror=maybe-uninitialized] (cherry picked from commit 7e3c833592b282355a57dd34459b152e4e078d19) --- winsup/cygwin/exceptions.cc | 3 +++ 1 file changed, 3 insertions(+) diff --git a/winsup/cygwin/exceptions.cc b/winsup/cygwin/exceptions.cc index a2a6f9d4c..28d0431d5 100644 --- a/winsup/cygwin/exceptions.cc +++ b/winsup/cygwin/exceptions.cc @@ -1717,7 +1717,10 @@ _cygtls::call_signal_handler () context, unwind to the caller and in case we're called from sigdelayed, fix the instruction pointer accordingly. */ context.uc_mcontext.ctxflags = CONTEXT_FULL; +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wmaybe-uninitialized" RtlCaptureContext ((PCONTEXT) &context.uc_mcontext); +#pragma GCC diagnostic pop __unwind_single_frame ((PCONTEXT) &context.uc_mcontext); if (stackptr > stack) {