Dimitry Andric:  many visibility fixes.  Howard:  Much appreciated.  Can you send me a patch to CREDITS.TXT?

llvm-svn: 163862
Cr-Mirrored-From: sso://chromium.googlesource.com/_direct/external/github.com/llvm/llvm-project
Cr-Mirrored-Commit: aeb85680fb688e96ba2d2fc7703ae6e57cc44097
diff --git a/include/memory b/include/memory
index 5559e49..fe5dd0c 100644
--- a/include/memory
+++ b/include/memory
@@ -3580,7 +3580,7 @@
     virtual const char* what() const  _NOEXCEPT;
 };
 
-template<class _Tp> class weak_ptr;
+template<class _Tp> class _LIBCPP_VISIBLE weak_ptr;
 
 class __shared_count
 {
@@ -3746,7 +3746,7 @@
     __a.deallocate(this, 1);
 }
 
-template<class _Tp> class enable_shared_from_this;
+template<class _Tp> class _LIBCPP_VISIBLE enable_shared_from_this;
 
 template<class _Tp>
 class _LIBCPP_VISIBLE shared_ptr
@@ -5278,10 +5278,10 @@
     __sp_mut(const __sp_mut&);
     __sp_mut& operator=(const __sp_mut&);
 
-    friend __sp_mut& __get_sp_mut(const void*);
+    friend _LIBCPP_VISIBLE __sp_mut& __get_sp_mut(const void*);
 };
 
-__sp_mut& __get_sp_mut(const void*);
+_LIBCPP_VISIBLE __sp_mut& __get_sp_mut(const void*);
 
 template <class _Tp>
 inline _LIBCPP_INLINE_VISIBILITY