https://gcc.gnu.org/bugzilla/show_bug.cgi?id=120895
Jakub Jelinek <jakub at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |jakub at gcc dot gnu.org --- Comment #11 from Jakub Jelinek <jakub at gcc dot gnu.org> --- C++17 and later has special new operators, so typedef int V __attribute__((vector_size (64))); int * foo () { return new int (); } V * bar () { return new V (); } int * baz () { return new int[32] (); } V * qux () { return new V[32] (); } in C++14 and earlier results in 2 _Znwm calls and 2 _Znam calls, while C++17 and later replaces one of the _Znwm calls with _ZnwmSt11align_val_t and one of the _Znam calls with _ZnamSt11align_val_t and asks for 64 byte alignment there. But I have no idea what std::vector in the end uses and whether it can pass align_val_t or not.