diff --git a/libcxx/include/__type_traits/decay.h b/libcxx/include/__type_traits/decay.h --- a/libcxx/include/__type_traits/decay.h +++ b/libcxx/include/__type_traits/decay.h @@ -42,7 +42,7 @@ typedef _LIBCPP_NODEBUG typename conditional < is_array<_Up>::value, - __remove_extent_t<_Up>*, + __add_pointer_t<__remove_extent_t<_Up>>, typename conditional < is_function<_Up>::value, diff --git a/libcxx/test/std/utilities/meta/meta.trans/meta.trans.other/decay.pass.cpp b/libcxx/test/std/utilities/meta/meta.trans/meta.trans.other/decay.pass.cpp --- a/libcxx/test/std/utilities/meta/meta.trans/meta.trans.other/decay.pass.cpp +++ b/libcxx/test/std/utilities/meta/meta.trans/meta.trans.other/decay.pass.cpp @@ -29,10 +29,14 @@ test_decay(); test_decay(); test_decay(); + test_decay(); + test_decay(); test_decay(); test_decay(); test_decay(); #if TEST_STD_VER > 11 + test_decay(); + test_decay(); test_decay(); test_decay(); test_decay();