https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66230
--- Comment #10 from Markus Trippelsdorf <trippels at gcc dot gnu.org> --- (In reply to gpnuma from comment #8) > Thanks Markus I didn't think these alignment issues were actually the > problem, it goes a long way. > > By doing memmoves instead of pointer cast allocations I got rid of the > segfault, but of course things are much slower... this "undefined behaviour" > is really treacherous !! > > Is there any way to ensure proper alignment so I don't fall into this trap > and still benefit from maximum speed ? I'm afraid there is no general recipe that would ensure proper alignment. But using memcpy hasn't necessary to be "much slower". And trading undefined behavior for a little more speed isn't a good idea in general.