From 3ea093cc85b1dca64e912dfb3fb66fa1230ac06b Mon Sep 17 00:00:00 2001 From: Ozkan Sezer Date: Sun, 25 Feb 2018 10:15:00 +0300 Subject: [PATCH] SDL_test_fuzzer.c: fix strict aliasing warnings by using a union. --- src/test/SDL_test_fuzzer.c | 26 ++++++++++++++++---------- 1 file changed, 16 insertions(+), 10 deletions(-) diff --git a/src/test/SDL_test_fuzzer.c b/src/test/SDL_test_fuzzer.c index 37b9dc31aa630..eee56a9febd65 100644 --- a/src/test/SDL_test_fuzzer.c +++ b/src/test/SDL_test_fuzzer.c @@ -126,29 +126,35 @@ SDLTest_RandomUint32() Uint64 SDLTest_RandomUint64() { - Uint64 value = 0; - Uint32 *vp = (void *)&value; + union { + Uint64 v64; + Uint32 v32[2]; + } value; + value.v64 = 0; fuzzerInvocationCounter++; - vp[0] = SDLTest_RandomSint32(); - vp[1] = SDLTest_RandomSint32(); + value.v32[0] = SDLTest_RandomSint32(); + value.v32[1] = SDLTest_RandomSint32(); - return value; + return value.v64; } Sint64 SDLTest_RandomSint64() { - Uint64 value = 0; - Uint32 *vp = (void *)&value; + union { + Uint64 v64; + Uint32 v32[2]; + } value; + value.v64 = 0; fuzzerInvocationCounter++; - vp[0] = SDLTest_RandomSint32(); - vp[1] = SDLTest_RandomSint32(); + value.v32[0] = SDLTest_RandomSint32(); + value.v32[1] = SDLTest_RandomSint32(); - return value; + return (Sint64)value.v64; }