diff options
author | Yaakov Selkowitz <yselkowi@redhat.com> | 2016-02-12 11:17:35 -0600 |
---|---|---|
committer | Yaakov Selkowitz <yselkowi@redhat.com> | 2016-02-12 12:08:40 -0600 |
commit | c5f03820fc4f8c9910f52ab2ef951a6e32ed3ff1 (patch) | |
tree | dd31c5c3cc62a46a50da6ca081c2ae8f3fbd72eb | |
parent | ac2f9e23ecd197758e7cc2ca1b8717add3d8762b (diff) | |
download | newlib-c5f03820fc4f8c9910f52ab2ef951a6e32ed3ff1.zip newlib-c5f03820fc4f8c9910f52ab2ef951a6e32ed3ff1.tar.gz newlib-c5f03820fc4f8c9910f52ab2ef951a6e32ed3ff1.tar.bz2 |
cygwin: fix errors with GCC 5
GCC 5 switched from C89 to C11 by default. This implies a change from
GNU to C99 inline by default, which have very different meanings of
extern inline vs. static inline:
https://gcc.gnu.org/onlinedocs/gcc/Inline.html
Marking these as gnu_inline retains the previous behaviour.
winsup/cygwin/
* exceptions.cc (exception::handle): Change debugging to int to fix
an always-true boolean comparison warning.
* include/cygwin/config.h (__getreent): Mark gnu_inline.
* winbase.h (ilockcmpexch, ilockcmpexch64): Ditto.
Signed-off-by: Yaakov Selkowitz <yselkowi@redhat.com>
-rw-r--r-- | winsup/cygwin/exceptions.cc | 4 | ||||
-rw-r--r-- | winsup/cygwin/include/cygwin/config.h | 1 | ||||
-rw-r--r-- | winsup/cygwin/winbase.h | 2 |
3 files changed, 5 insertions, 2 deletions
diff --git a/winsup/cygwin/exceptions.cc b/winsup/cygwin/exceptions.cc index c3a45d2..1627d43 100644 --- a/winsup/cygwin/exceptions.cc +++ b/winsup/cygwin/exceptions.cc @@ -637,7 +637,7 @@ EXCEPTION_DISPOSITION exception::handle (EXCEPTION_RECORD *e, exception_list *frame, CONTEXT *in, PDISPATCHER_CONTEXT dispatch) { - static bool NO_COPY debugging; + static int NO_COPY debugging = 0; _cygtls& me = _my_tls; #ifndef __x86_64__ @@ -808,7 +808,7 @@ exception::handle (EXCEPTION_RECORD *e, exception_list *frame, CONTEXT *in, rtl_unwind (frame, e); else { - debugging = true; + debugging = 1; return ExceptionContinueExecution; } diff --git a/winsup/cygwin/include/cygwin/config.h b/winsup/cygwin/include/cygwin/config.h index 58cff05..204826d 100644 --- a/winsup/cygwin/include/cygwin/config.h +++ b/winsup/cygwin/include/cygwin/config.h @@ -43,6 +43,7 @@ extern "C" { #else #include "../tlsoffsets.h" #endif +__attribute__((gnu_inline)) extern inline struct _reent *__getreent (void) { register char *ret; diff --git a/winsup/cygwin/winbase.h b/winsup/cygwin/winbase.h index 666f74a..1e825e4 100644 --- a/winsup/cygwin/winbase.h +++ b/winsup/cygwin/winbase.h @@ -11,6 +11,7 @@ details. */ #ifndef _WINBASE2_H #define _WINBASE2_H +__attribute__((gnu_inline)) extern __inline__ LONG ilockcmpexch (volatile LONG *t, LONG v, LONG c) { @@ -30,6 +31,7 @@ ilockcmpexch (volatile LONG *t, LONG v, LONG c) #undef InterlockedCompareExchangePointer #ifdef __x86_64__ +__attribute__((gnu_inline)) extern __inline__ LONGLONG ilockcmpexch64 (volatile LONGLONG *t, LONGLONG v, LONGLONG c) { |