diff --git a/CMakeLists.txt b/CMakeLists.txt index 6e993a7f1..e690ba523 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -334,6 +334,7 @@ if(USE_GCC OR USE_CLANG) set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-multichar") endif() endif() + #check_c_compiler_flag(-Wshadow HAVE_GCC_WSHADOW) endif() if(ASSEMBLY) diff --git a/configure b/configure index f6a2960dd..799d1755e 100755 --- a/configure +++ b/configure @@ -18684,6 +18684,43 @@ $as_echo "$need_gcc_Wno_multichar" >&6; } fi } +CheckWarnShadow() +{ + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GCC -Wshadow option" >&5 +$as_echo_n "checking for GCC -Wshadow option... " >&6; } + have_gcc_Wshadow=no + + save_CFLAGS="$CFLAGS" + CFLAGS="$save_CFLAGS -Wshadow" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + int x = 0; + +int +main () +{ + + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + + have_gcc_Wshadow=yes + +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $have_gcc_Wshadow" >&5 +$as_echo "$have_gcc_Wshadow" >&6; } + CFLAGS="$save_CFLAGS" + + if test x$have_gcc_Wshadow = xyes; then + EXTRA_CFLAGS="$EXTRA_CFLAGS -Wshadow" + fi +} + CheckWayland() { # Check whether --enable-video-wayland was given. @@ -23337,6 +23374,7 @@ $as_echo "#define SDL_FILESYSTEM_NACL 1" >>confdefs.h esac CheckWarnAll +#CheckWarnShadow # Verify that we have all the platform specific files we need diff --git a/configure.in b/configure.in index 0fc628b24..2ea381830 100644 --- a/configure.in +++ b/configure.in @@ -1159,6 +1159,28 @@ CheckWarnAll() fi } +dnl See if GCC's -Wshadow is supported. +CheckWarnShadow() +{ + AC_MSG_CHECKING(for GCC -Wshadow option) + have_gcc_Wshadow=no + + save_CFLAGS="$CFLAGS" + CFLAGS="$save_CFLAGS -Wshadow" + AC_TRY_COMPILE([ + int x = 0; + ],[ + ],[ + have_gcc_Wshadow=yes + ]) + AC_MSG_RESULT($have_gcc_Wshadow) + CFLAGS="$save_CFLAGS" + + if test x$have_gcc_Wshadow = xyes; then + EXTRA_CFLAGS="$EXTRA_CFLAGS -Wshadow" + fi +} + dnl Check for Wayland CheckWayland() { @@ -3216,6 +3238,7 @@ esac dnl Do this on all platforms, after everything else. CheckWarnAll +#CheckWarnShadow # Verify that we have all the platform specific files we need diff --git a/src/events/SDL_events.c b/src/events/SDL_events.c index 7cb4f0cb5..963b9bd7c 100644 --- a/src/events/SDL_events.c +++ b/src/events/SDL_events.c @@ -302,7 +302,6 @@ SDL_PeepEvents(SDL_Event * events, int numevents, SDL_eventaction action, For now we'll guarantee it's valid at least until the next call to SDL_PeepEvents() */ - SDL_SysWMEntry *wmmsg; if (SDL_EventQ.wmmsg_free) { wmmsg = SDL_EventQ.wmmsg_free; SDL_EventQ.wmmsg_free = wmmsg->next; diff --git a/src/events/SDL_gesture.c b/src/events/SDL_gesture.c index f7a9b4d38..46a554635 100644 --- a/src/events/SDL_gesture.c +++ b/src/events/SDL_gesture.c @@ -473,7 +473,6 @@ static int SDL_SendDollarRecord(SDL_GestureTouch* touch,SDL_GestureID gestureId) void SDL_GestureProcessEvent(SDL_Event* event) { float x,y; - SDL_FloatPoint path[DOLLARNPOINTS]; int index; int i; float pathDx, pathDy; @@ -497,6 +496,8 @@ void SDL_GestureProcessEvent(SDL_Event* event) /* Finger Up */ if (event->type == SDL_FINGERUP) { + SDL_FloatPoint path[DOLLARNPOINTS]; + inTouch->numDownFingers--; #ifdef ENABLE_DOLLAR