From e2767bd010d5c30df97789b8b56a42eff4234e5b Mon Sep 17 00:00:00 2001 From: Paul Eggert Date: Fri, 23 Dec 2016 18:28:44 -0800 Subject: [PATCH] Use max_align_t instead of void * MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit * src/thread.c (run_thread): Don’t assume void * is aligned enough. --- src/thread.c | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/src/thread.c b/src/thread.c index 3f9595274e9..0bb0b7e006a 100644 --- a/src/thread.c +++ b/src/thread.c @@ -645,17 +645,12 @@ run_thread (void *state) { /* Make sure stack_top and m_stack_bottom are properly aligned as GC expects. */ - union - { - void *p; - char c; - } stack_pos; + max_align_t stack_pos; struct thread_state *self = state; struct thread_state **iter; - self->m_stack_bottom = &stack_pos.c; - self->stack_top = &stack_pos.c; + self->m_stack_bottom = self->stack_top = (char *) &stack_pos; self->thread_id = sys_thread_self (); acquire_global_lock (self); -- 2.39.2