This patch stops declaring implicitly the new and delete operators with alignment if the deployment target is earlier than the version in which support for them was introduced . This fixes linker errors which we see when the compiler emits a new or delete operator with alignment but the c++ library it links against is old and doesn't implement those operators.
I also sent a patch that annotates the declarations in libc++ today:
https://reviews.llvm.org/D34556
rdar://problem/32664169
This is the wrong name for a TargetInfo member. The TargetInfo gets to say whether or not the target is known to support aligned allocation, but it's none of the target's business whether that support is ultimately enabled or disabled. Something like supportsAlignedAllocation would make more sense.