[newlib-cygwin/cygwin-3_5-branch] Cygwin: suppress a warning generated with w32api >= 12.0.0

Jon Turney jturney@sourceware.org
Sun Jun 16 15:38:20 GMT 2024


https://sourceware.org/git/gitweb.cgi?p=newlib-cygwin.git;h=d1670f1e963039d0f16cfc30abdcea118b65504e

commit d1670f1e963039d0f16cfc30abdcea118b65504e
Author: Jon Turney <jon.turney@dronecode.org.uk>
Date:   Fri Jun 7 17:29:10 2024 +0100

    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: '<anonymous>' may be used uninitialized in this function [-Werror=maybe-uninitialized]
    
    (cherry picked from commit 7e3c833592b282355a57dd34459b152e4e078d19)

Diff:
---
 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)
 		{


More information about the Cygwin-cvs mailing list