From: Dmitry V. Levin Date: Wed, 11 Sep 2013 13:26:17 +0000 (+0000) Subject: x86, x86_64: fix compilation warnings X-Git-Tag: v4.9~184 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=aca4ff79d1adc70ec033ffc5377ba7494daf350d;p=strace x86, x86_64: fix compilation warnings Fix "dereferencing type-punned pointer will break strict-aliasing rules" warnings introduced by commit v4.8-52-gb51f364. * signal.c (sys_sigreturn): Avoid dereferencing type-punned pointers. --- diff --git a/signal.c b/signal.c index 3db908d4..6b3c8c05 100644 --- a/signal.c +++ b/signal.c @@ -888,13 +888,16 @@ sys_sigreturn(struct tcb *tcp) * and after it an additional u32 extramask[1] which holds * upper half of the mask. */ - sigset_t sigm; + union { + sigset_t sig; + uint32_t mask[2]; + } sigmask; if (umove(tcp, *i386_esp_ptr, &signal_stack) < 0) return 0; - sigemptyset(&sigm); - ((uint32_t*)&sigm)[0] = signal_stack.sc.oldmask; - ((uint32_t*)&sigm)[1] = signal_stack.extramask[0]; - tprints(sprintsigmask(") (mask ", &sigm)); + sigemptyset(&sigmask.sig); + sigmask.mask[0] = signal_stack.sc.oldmask; + sigmask.mask[1] = signal_stack.extramask[0]; + tprints(sprintsigmask(") (mask ", &sigmask.sig)); } #elif defined(IA64) if (entering(tcp)) {