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.

Reply via email to