When the allocated object is not an array, the result of the new-expression is a pointer to the object created.
p6:
When the allocated object is an array (that is, the noptr-new-declarator syntax is used or the new-type-id or type-id denotes an array type), the new-expression yields a pointer to the initial element (if any) of the array.
p9:
When the value of the expression is zero, the allocation function is called to allocate an array with no elements.
IMO p9 (or p6) should specify what kind of pointer value ([basic.compound]) is produced by a new-expression allocating an array with no elements
p5:
p6:
p9:
IMO p9 (or p6) should specify what kind of pointer value ([basic.compound]) is produced by a new-expression allocating an array with no elements