https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70488
--- Comment #5 from Marek Polacek <mpolacek at gcc dot gnu.org> ---
Better testcase:
// PR c++/70488
// { dg-do compile }
typedef __typeof__ (sizeof 0) size_t;
void* operator new (size_t, void *p) { return p; }
void* operator new[] (size_t, void *p) { return p; }
struct S { size_t s; };
void
fn (unsigned int s)
{
char a[sizeof (S) + s];
S *f = new (a) S;
S *f2 = new (a) S [1];
}
