No functionality change at this time.  I've split _LIBCPP_VISIBLE up into two flags: _LIBCPP_TYPE_VIS and _LIBCPP_FUNC_VIS.  This is in preparation for taking advantage of clang's new __type_visibility__ attribute.

llvm-svn: 176593
diff --git a/libcxx/include/utility b/libcxx/include/utility
index 514ce17..2df4b36 100644
--- a/libcxx/include/utility
+++ b/libcxx/include/utility
@@ -205,7 +205,7 @@
     return _VSTD::move(__x);
 }
 
-struct _LIBCPP_VISIBLE piecewise_construct_t { };
+struct _LIBCPP_TYPE_VIS piecewise_construct_t { };
 #if defined(_LIBCPP_HAS_NO_CONSTEXPR) || defined(_LIBCPP_BUILDING_UTILITY)
 extern const piecewise_construct_t piecewise_construct;// = piecewise_construct_t();
 #else
@@ -213,7 +213,7 @@
 #endif
 
 template <class _T1, class _T2>
-struct _LIBCPP_VISIBLE pair
+struct _LIBCPP_TYPE_VIS pair
 {
     typedef _T1 first_type;
     typedef _T2 second_type;
@@ -419,7 +419,7 @@
 
 #ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
 
-template <class _Tp> class _LIBCPP_VISIBLE reference_wrapper;
+template <class _Tp> class _LIBCPP_TYPE_VIS reference_wrapper;
 
 template <class _Tp>
 struct ___make_pair_return
@@ -461,36 +461,36 @@
 #endif  // _LIBCPP_HAS_NO_RVALUE_REFERENCES
 
 template <class _T1, class _T2>
-  class _LIBCPP_VISIBLE tuple_size<pair<_T1, _T2> >
+  class _LIBCPP_TYPE_VIS tuple_size<pair<_T1, _T2> >
     : public integral_constant<size_t, 2> {};
 
 template <class _T1, class _T2>
-  class _LIBCPP_VISIBLE tuple_size<const pair<_T1, _T2> >
+  class _LIBCPP_TYPE_VIS tuple_size<const pair<_T1, _T2> >
     : public integral_constant<size_t, 2> {};
 
 template <class _T1, class _T2>
-class _LIBCPP_VISIBLE tuple_element<0, pair<_T1, _T2> >
+class _LIBCPP_TYPE_VIS tuple_element<0, pair<_T1, _T2> >
 {
 public:
     typedef _T1 type;
 };
 
 template <class _T1, class _T2>
-class _LIBCPP_VISIBLE tuple_element<1, pair<_T1, _T2> >
+class _LIBCPP_TYPE_VIS tuple_element<1, pair<_T1, _T2> >
 {
 public:
     typedef _T2 type;
 };
 
 template <class _T1, class _T2>
-class _LIBCPP_VISIBLE tuple_element<0, const pair<_T1, _T2> >
+class _LIBCPP_TYPE_VIS tuple_element<0, const pair<_T1, _T2> >
 {
 public:
     typedef const _T1 type;
 };
 
 template <class _T1, class _T2>
-class _LIBCPP_VISIBLE tuple_element<1, const pair<_T1, _T2> >
+class _LIBCPP_TYPE_VIS tuple_element<1, const pair<_T1, _T2> >
 {
 public:
     typedef const _T2 type;