https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102772
Jonathan Wakely <redi at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- See Also| |https://gcc.gnu.org/bugzill | |a/show_bug.cgi?id=77691 --- Comment #35 from Jonathan Wakely <redi at gcc dot gnu.org> --- That said, this would probably fix it: --- a/libstdc++-v3/libsupc++/new_op.cc +++ b/libstdc++-v3/libsupc++/new_op.cc @@ -41,6 +41,11 @@ extern "C" void *malloc (std::size_t); _GLIBCXX_WEAK_DEFINITION void * operator new (std::size_t sz) _GLIBCXX_THROW (std::bad_alloc) { +#if defined __sun && defined __i386__ + if (sz >= 16) + return ::operator new(sz, std::align_val_t(16)); +#endif + void *p; /* malloc (0) is unpredictable; avoid it. */ As noted in PR 77691, there are other targets where GCC's max_align_t does not match the target malloc. That includes vxworks and mingw*.