aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJon Turney <jon.turney@dronecode.org.uk>2024-06-07 17:29:10 +0100
committerJon Turney <jon.turney@dronecode.org.uk>2024-06-16 15:30:34 +0100
commit7e3c833592b282355a57dd34459b152e4e078d19 (patch)
tree4401be0b6a93d6f209f324d1e10c833c846ff8a5
parent1ed15161362b2eb5649b049b7ab0aaf8097bd43a (diff)
downloadnewlib-main.zip
newlib-main.tar.gz
newlib-main.tar.bz2
Cygwin: suppress a warning generated with w32api >= 12.0.0HEADgithub/mastergithub/mainmastermain
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: '<anonymous>' may be used uninitialized in this function [-Werror=maybe-uninitialized]
-rw-r--r--winsup/cygwin/exceptions.cc3
1 files changed, 3 insertions, 0 deletions
diff --git a/winsup/cygwin/exceptions.cc b/winsup/cygwin/exceptions.cc
index a2a6f9d..28d0431 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)
{