[libc++] <type_traits>: Avoid instantiating a pointer type.

GCC expands the pointer type in this conditional expression even for
template types _Up that are not arrays.  This raises an error when
std::decay<> is used with reference types (as is done in LLVM's
sources).  Using add_pointer<> causes GCC to only instantiate a
pointer type for array types.

Reviewed By: #libc, philnik, ldionne

Differential Revision: https://reviews.llvm.org/D135469

GitOrigin-RevId: 26068c6e60324ed866a1ca2afb5cb5eb0aaf015b
2 files changed