http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32402
--- Comment #9 from Jonathan Wakely <redi at gcc dot gnu.org> 2010-10-30 11:46:47 UTC --- As an extra data point, this compiles with -std=c++0x struct pure; void f() { pure (*arr[3]); pure** p = new (decltype(arr)); delete[] p; } This shows that allocating an array of pure* is semantically OK, it's just a bug in parsing or checking the new-expression.