While considering the PR102071 patch for backporting, I noticed that I was
considering the alignment of the array new cookie even when there isn't one
because we aren't allocating an array.
PR c++/102071
gcc/cp/ChangeLog:
* init.cc (build_new_1): Check array_p for alignment.
gcc/testsuite/ChangeLog:
* g++.dg/cpp1z/aligned-new9.C: Add single-object test.
{
unsigned align = TYPE_ALIGN_UNIT (elt_type);
/* Also consider the alignment of the cookie, if any. */
- if (TYPE_VEC_NEW_USES_COOKIE (elt_type))
+ if (array_p && TYPE_VEC_NEW_USES_COOKIE (elt_type))
align = MAX (align, TYPE_ALIGN_UNIT (size_type_node));
align_arg = build_int_cst (align_type_node, align);
}
X *p = new X[n];
if (nalign != align)
__builtin_abort ();
+
+ X *p2 = new X;
+ if (nalign != alignof (X))
+ __builtin_abort ();
}