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]; }