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.
This commit is contained in:
Дмитрий Левин 2013-09-11 13:26:17 +00:00
parent a877379bcb
commit aca4ff79d1

View File

@ -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)) {