http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59679
--- Comment #4 from nullnilaki at gmail dot com --- (In reply to Andrew Pinski from comment #1) > This looks more like a bug in perl sources. Can you attach the preprocessed > source for scope.c? > > The big question is how is ARG0_PTR defined? GCC must be assuming the > alignment is 64bits for some reason. This needs the preprocessed source to > see why the alignment is being done incorrectly. Maybe ARG0_PTR was > assigned from a long long pointer. > > In C, once you assign it to a pointer of bigger alignment and it is not > aligned, the code is undefined. Thank you for your reply! ARG0_PTR is defined in scope.c. #define ARG0_PTR arg0.any_ptr and any_ptr is defined in perl.h. union any { void* any_ptr; I32 any_i32; IV any_iv; UV any_uv; long any_long; bool any_bool; void (*any_dptr) (void*); void (*any_dxptr) (pTHX_ void*); };