[PATCH] Cygwin: cygserver: build with -Wimplicit-fallthrough=5
Ken Brown
kbrown@cornell.edu
Fri Aug 7 13:51:11 GMT 2020
Define the pseudo keyword 'fallthrough' in woutsup.h to support this.
---
winsup/cygserver/Makefile.in | 2 +-
winsup/cygserver/bsd_helper.cc | 2 +-
winsup/cygserver/bsd_mutex.cc | 2 +-
winsup/cygserver/woutsup.h | 2 ++
4 files changed, 5 insertions(+), 3 deletions(-)
diff --git a/winsup/cygserver/Makefile.in b/winsup/cygserver/Makefile.in
index bbdfc25fb..70f38233c 100644
--- a/winsup/cygserver/Makefile.in
+++ b/winsup/cygserver/Makefile.in
@@ -16,7 +16,7 @@ export CXX:=@CXX@
CFLAGS:=@CFLAGS@
override CXXFLAGS=@CXXFLAGS@
-override CXXFLAGS+=-MMD -Wimplicit-fallthrough=4 -Werror -D__OUTSIDE_CYGWIN__ -DSYSCONFDIR="\"$(sysconfdir)\""
+override CXXFLAGS+=-MMD -Wimplicit-fallthrough=5 -Werror -D__OUTSIDE_CYGWIN__ -DSYSCONFDIR="\"$(sysconfdir)\""
include ${srcdir}/../Makefile.common
diff --git a/winsup/cygserver/bsd_helper.cc b/winsup/cygserver/bsd_helper.cc
index ecc90e117..38639647e 100644
--- a/winsup/cygserver/bsd_helper.cc
+++ b/winsup/cygserver/bsd_helper.cc
@@ -120,7 +120,7 @@ ipcexit_hookthread (const LPVOID param)
{
case WAIT_OBJECT_0:
/* Cygserver shutdown. */
- /*FALLTHRU*/
+ fallthrough;
case WAIT_OBJECT_0 + 1:
/* Process exited. Call semexit_myhook to handle SEM_UNDOs for the
exiting process and shmexit_myhook to keep track of shared
diff --git a/winsup/cygserver/bsd_mutex.cc b/winsup/cygserver/bsd_mutex.cc
index 13c5f90e8..0cda87a5b 100644
--- a/winsup/cygserver/bsd_mutex.cc
+++ b/winsup/cygserver/bsd_mutex.cc
@@ -326,7 +326,7 @@ _msleep (void *ident, struct mtx *mtx, int priority,
break;
case WAIT_OBJECT_0 + 1: /* Shutdown event (triggered by wakeup_all). */
priority |= PDROP;
- /*FALLTHRU*/
+ fallthrough;
case WAIT_OBJECT_0 + 2: /* The dependent process has exited. */
debug ("msleep process exit or shutdown for %d", td->td_proc->winpid);
ret = EIDRM;
diff --git a/winsup/cygserver/woutsup.h b/winsup/cygserver/woutsup.h
index 272f978c0..7b799f156 100644
--- a/winsup/cygserver/woutsup.h
+++ b/winsup/cygserver/woutsup.h
@@ -12,6 +12,8 @@ details. */
#error "woutsup.h is not for code being compiled inside the dll"
#endif
+#define fallthrough __attribute__((__fallthrough__))
+
#ifndef _WIN32_WINNT
#define _WIN32_WINNT 0x0500
#endif
--
2.28.0
More information about the Cygwin-patches
mailing list