https://gcc.gnu.org/bugzilla/show_bug.cgi?id=120895
--- Comment #13 from David C. Partridge <david.partridge at perdrix dot co.uk> --- (In reply to Richard Biener from comment #10) > I think this is at most a C++ std library QOI issue - IIRC you have to use a > different allocator for types requiring bigger alignment than any of the > standard types. That is simply using std::vector<T> for such types doesn't > guarantee proper alignment as memory is obtained via std::new. Not so much since C++17 - that requires the allocator used by (e.g.) std::vector (or any other std library container) to honour the alignment set for the data type. Also I see from some comments here some are suggesting later versions of g++ seem to work as I expect (i.e. align to 64 bytes).