Temporary fix for bug 4254 - a _lot_ of strict aliasing warnings

Ozkan Sezer

A horde of strict aliasing violation warnings are emitted from joystick
layer, and also from a few other places. This happens with gcc-4.4.7 on
Linux CentOS 6.10.  Some other sysjoystick would possibly have the same
warnings.

Attached my full log here. Example entry:
src/joystick/SDL_joystick.c: In function 'SDL_GetJoystickGUIDInfo':
src/joystick/SDL_joystick.c:1094: warning: dereferencing pointer '({anonymous})' does break strict-aliasing rules
This commit is contained in:
Sam Lantinga
2019-06-08 18:32:29 -07:00
parent 31765242d6
commit 1b73d578f3
3 changed files with 68 additions and 1 deletions

40
configure vendored
View File

@@ -19396,6 +19396,43 @@ $as_echo "$have_gcc_fvisibility" >&6; }
fi
}
CheckNoStrictAliasing()
{
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GCC -fno-strict-aliasing option" >&5
$as_echo_n "checking for GCC -fno-strict-aliasing option... " >&6; }
have_gcc_no_strict_aliasing=no
save_CFLAGS="$CFLAGS"
CFLAGS="$save_CFLAGS -fno-strict-aliasing"
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_no_strict_aliasing=yes
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $have_gcc_no_strict_aliasing" >&5
$as_echo "$have_gcc_no_strict_aliasing" >&6; }
CFLAGS="$save_CFLAGS"
if test x$have_gcc_no_strict_aliasing = xyes; then
EXTRA_CFLAGS="$EXTRA_CFLAGS -fno-strict-aliasing"
fi
}
CheckStackBoundary()
{
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GCC -mpreferred-stack-boundary option" >&5
@@ -24334,6 +24371,7 @@ fi
CheckWarnAll
CheckNoStrictAliasing
CheckEventSignals
@@ -24402,8 +24440,8 @@ case "$host" in
CheckOpenGLESX11
CheckVulkan
CheckWayland
CheckLibUDev
CheckInputEvents
CheckLibUDev
CheckDBus
CheckIME
CheckIBus