Partial fix for bug 2556 - add compilation flag -Wshadow

I added -Wshadow and then turned it off again because of massive variable shadowing in the blit macros.

Feel free to go through that code and fix these if you want. Just uncomment CheckWarnShadow in configure.in if you want to try this.
This commit is contained in:
Sam Lantinga 2014-06-22 11:02:56 -07:00
parent 9f5e3ed7e7
commit 553028c9ec
5 changed files with 64 additions and 2 deletions

View File

@ -334,6 +334,7 @@ if(USE_GCC OR USE_CLANG)
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-multichar") set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-multichar")
endif() endif()
endif() endif()
#check_c_compiler_flag(-Wshadow HAVE_GCC_WSHADOW)
endif() endif()
if(ASSEMBLY) if(ASSEMBLY)

38
configure vendored
View File

@ -18684,6 +18684,43 @@ $as_echo "$need_gcc_Wno_multichar" >&6; }
fi 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() CheckWayland()
{ {
# Check whether --enable-video-wayland was given. # Check whether --enable-video-wayland was given.
@ -23337,6 +23374,7 @@ $as_echo "#define SDL_FILESYSTEM_NACL 1" >>confdefs.h
esac esac
CheckWarnAll CheckWarnAll
#CheckWarnShadow
# Verify that we have all the platform specific files we need # Verify that we have all the platform specific files we need

View File

@ -1159,6 +1159,28 @@ CheckWarnAll()
fi 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 dnl Check for Wayland
CheckWayland() CheckWayland()
{ {
@ -3216,6 +3238,7 @@ esac
dnl Do this on all platforms, after everything else. dnl Do this on all platforms, after everything else.
CheckWarnAll CheckWarnAll
#CheckWarnShadow
# Verify that we have all the platform specific files we need # Verify that we have all the platform specific files we need

View File

@ -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 For now we'll guarantee it's valid at least until
the next call to SDL_PeepEvents() the next call to SDL_PeepEvents()
*/ */
SDL_SysWMEntry *wmmsg;
if (SDL_EventQ.wmmsg_free) { if (SDL_EventQ.wmmsg_free) {
wmmsg = SDL_EventQ.wmmsg_free; wmmsg = SDL_EventQ.wmmsg_free;
SDL_EventQ.wmmsg_free = wmmsg->next; SDL_EventQ.wmmsg_free = wmmsg->next;

View File

@ -473,7 +473,6 @@ static int SDL_SendDollarRecord(SDL_GestureTouch* touch,SDL_GestureID gestureId)
void SDL_GestureProcessEvent(SDL_Event* event) void SDL_GestureProcessEvent(SDL_Event* event)
{ {
float x,y; float x,y;
SDL_FloatPoint path[DOLLARNPOINTS];
int index; int index;
int i; int i;
float pathDx, pathDy; float pathDx, pathDy;
@ -497,6 +496,8 @@ void SDL_GestureProcessEvent(SDL_Event* event)
/* Finger Up */ /* Finger Up */
if (event->type == SDL_FINGERUP) { if (event->type == SDL_FINGERUP) {
SDL_FloatPoint path[DOLLARNPOINTS];
inTouch->numDownFingers--; inTouch->numDownFingers--;
#ifdef ENABLE_DOLLAR #ifdef ENABLE_DOLLAR