<div dir="ltr">On OS X 10.8, __ZNSt3__115basic_streambufIcNS_11char_traitsIcEEE5sputcEc (and others) are a hidden symbol in libc++.1.dylib. This means:<div><br></div><div>* If I use streambuf::sputc() and link against the 10.8 SDK, and the compiler decides to not inline the call, I will get linker errors.</div><div>* If I do the same with the 10.10 SDK when targeting 10.8, then (even worse) the link will silently succeed (since it links against the 10.10 libc++ which does have a public symbol for this -- the SDK assumes that libc++ is abi-compatible with itself) but it will then fail to run on a 10.8 system.</div><div><br></div><div>I don't see a way to save this change -- I think this needs to be reverted.</div><div><br></div><div>Have you made similar changes elsewhere? These probably need to be reverted too.</div></div><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Dec 9, 2015 at 6:42 PM, Evgeniy Stepanov via cfe-commits <span dir="ltr"><<a href="mailto:cfe-commits@lists.llvm.org" target="_blank">cfe-commits@lists.llvm.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Author: eugenis<br>
Date: Wed Dec  9 17:42:30 2015<br>
New Revision: 255177<br>
<br>
URL: <a href="http://llvm.org/viewvc/llvm-project?rev=255177&view=rev" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project?rev=255177&view=rev</a><br>
Log:<br>
Remove visibility attributes from out-of-class method definitions in iostreams.<br>
<br>
No point in pretending that these methods are hidden - they are<br>
actually exported from libc++.so. Extern template declarations make<br>
them part of libc++ ABI.<br>
<br>
This patch does not change libc++.so export list (at least on Linux).<br>
<br>
Modified:<br>
    libcxx/trunk/include/istream<br>
    libcxx/trunk/include/ostream<br>
    libcxx/trunk/include/sstream<br>
    libcxx/trunk/include/streambuf<br>
<br>
Modified: libcxx/trunk/include/istream<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/libcxx/trunk/include/istream?rev=255177&r1=255176&r2=255177&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/libcxx/trunk/include/istream?rev=255177&r1=255176&r2=255177&view=diff</a><br>
==============================================================================<br>
--- libcxx/trunk/include/istream (original)<br>
+++ libcxx/trunk/include/istream Wed Dec  9 17:42:30 2015<br>
@@ -304,7 +304,7 @@ basic_istream<_CharT, _Traits>::sentry::<br>
 }<br>
<br>
 template <class _CharT, class _Traits><br>
-inline _LIBCPP_INLINE_VISIBILITY<br>
+inline<br>
 basic_istream<_CharT, _Traits>::basic_istream(basic_streambuf<char_type, traits_type>* __sb)<br>
     : __gc_(0)<br>
 {<br>
@@ -314,7 +314,7 @@ basic_istream<_CharT, _Traits>::basic_is<br>
 #ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES<br>
<br>
 template <class _CharT, class _Traits><br>
-inline _LIBCPP_INLINE_VISIBILITY<br>
+inline<br>
 basic_istream<_CharT, _Traits>::basic_istream(basic_istream&& __rhs)<br>
     : __gc_(__rhs.__gc_)<br>
 {<br>
@@ -323,7 +323,7 @@ basic_istream<_CharT, _Traits>::basic_is<br>
 }<br>
<br>
 template <class _CharT, class _Traits><br>
-inline _LIBCPP_INLINE_VISIBILITY<br>
+inline<br>
 basic_istream<_CharT, _Traits>&<br>
 basic_istream<_CharT, _Traits>::operator=(basic_istream&& __rhs)<br>
 {<br>
@@ -339,7 +339,7 @@ basic_istream<_CharT, _Traits>::~basic_i<br>
 }<br>
<br>
 template <class _CharT, class _Traits><br>
-inline _LIBCPP_INLINE_VISIBILITY<br>
+inline<br>
 void<br>
 basic_istream<_CharT, _Traits>::swap(basic_istream& __rhs)<br>
 {<br>
@@ -725,7 +725,7 @@ basic_istream<_CharT, _Traits>::operator<br>
 }<br>
<br>
 template <class _CharT, class _Traits><br>
-inline _LIBCPP_INLINE_VISIBILITY<br>
+inline<br>
 basic_istream<_CharT, _Traits>&<br>
 basic_istream<_CharT, _Traits>::operator>>(basic_istream& (*__pf)(basic_istream&))<br>
 {<br>
@@ -733,7 +733,7 @@ basic_istream<_CharT, _Traits>::operator<br>
 }<br>
<br>
 template <class _CharT, class _Traits><br>
-inline _LIBCPP_INLINE_VISIBILITY<br>
+inline<br>
 basic_istream<_CharT, _Traits>&<br>
 basic_istream<_CharT, _Traits>::operator>>(basic_ios<char_type, traits_type>&<br>
                                            (*__pf)(basic_ios<char_type, traits_type>&))<br>
@@ -743,7 +743,7 @@ basic_istream<_CharT, _Traits>::operator<br>
 }<br>
<br>
 template <class _CharT, class _Traits><br>
-inline _LIBCPP_INLINE_VISIBILITY<br>
+inline<br>
 basic_istream<_CharT, _Traits>&<br>
 basic_istream<_CharT, _Traits>::operator>>(ios_base& (*__pf)(ios_base&))<br>
 {<br>
@@ -800,7 +800,7 @@ operator>>(basic_istream<_CharT, _Traits<br>
 }<br>
<br>
 template<class _Traits><br>
-inline _LIBCPP_INLINE_VISIBILITY<br>
+inline<br>
 basic_istream<char, _Traits>&<br>
 operator>>(basic_istream<char, _Traits>& __is, unsigned char* __s)<br>
 {<br>
@@ -808,7 +808,7 @@ operator>>(basic_istream<char, _Traits>&<br>
 }<br>
<br>
 template<class _Traits><br>
-inline _LIBCPP_INLINE_VISIBILITY<br>
+inline<br>
 basic_istream<char, _Traits>&<br>
 operator>>(basic_istream<char, _Traits>& __is, signed char* __s)<br>
 {<br>
@@ -843,7 +843,7 @@ operator>>(basic_istream<_CharT, _Traits<br>
 }<br>
<br>
 template<class _Traits><br>
-inline _LIBCPP_INLINE_VISIBILITY<br>
+inline<br>
 basic_istream<char, _Traits>&<br>
 operator>>(basic_istream<char, _Traits>& __is, unsigned char& __c)<br>
 {<br>
@@ -851,7 +851,7 @@ operator>>(basic_istream<char, _Traits>&<br>
 }<br>
<br>
 template<class _Traits><br>
-inline _LIBCPP_INLINE_VISIBILITY<br>
+inline<br>
 basic_istream<char, _Traits>&<br>
 operator>>(basic_istream<char, _Traits>& __is, signed char& __c)<br>
 {<br>
@@ -947,7 +947,7 @@ basic_istream<_CharT, _Traits>::get()<br>
 }<br>
<br>
 template<class _CharT, class _Traits><br>
-inline _LIBCPP_INLINE_VISIBILITY<br>
+inline<br>
 basic_istream<_CharT, _Traits>&<br>
 basic_istream<_CharT, _Traits>::get(char_type& __c)<br>
 {<br>
@@ -1006,7 +1006,7 @@ basic_istream<_CharT, _Traits>::get(char<br>
 }<br>
<br>
 template<class _CharT, class _Traits><br>
-inline _LIBCPP_INLINE_VISIBILITY<br>
+inline<br>
 basic_istream<_CharT, _Traits>&<br>
 basic_istream<_CharT, _Traits>::get(char_type* __s, streamsize __n)<br>
 {<br>
@@ -1068,7 +1068,7 @@ basic_istream<_CharT, _Traits>::get(basi<br>
 }<br>
<br>
 template<class _CharT, class _Traits><br>
-inline _LIBCPP_INLINE_VISIBILITY<br>
+inline<br>
 basic_istream<_CharT, _Traits>&<br>
 basic_istream<_CharT, _Traits>::get(basic_streambuf<char_type, traits_type>& __sb)<br>
 {<br>
@@ -1129,7 +1129,7 @@ basic_istream<_CharT, _Traits>::getline(<br>
 }<br>
<br>
 template<class _CharT, class _Traits><br>
-inline _LIBCPP_INLINE_VISIBILITY<br>
+inline<br>
 basic_istream<_CharT, _Traits>&<br>
 basic_istream<_CharT, _Traits>::getline(char_type* __s, streamsize __n)<br>
 {<br>
@@ -1462,7 +1462,7 @@ ws(basic_istream<_CharT, _Traits>& __is)<br>
 #ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES<br>
<br>
 template <class _CharT, class _Traits, class _Tp><br>
-inline _LIBCPP_INLINE_VISIBILITY<br>
+inline<br>
 basic_istream<_CharT, _Traits>&<br>
 operator>>(basic_istream<_CharT, _Traits>&& __is, _Tp& __x)<br>
 {<br>
@@ -1504,7 +1504,7 @@ public:<br>
 };<br>
<br>
 template <class _CharT, class _Traits><br>
-inline _LIBCPP_INLINE_VISIBILITY<br>
+inline<br>
 basic_iostream<_CharT, _Traits>::basic_iostream(basic_streambuf<char_type, traits_type>* __sb)<br>
     : basic_istream<_CharT, _Traits>(__sb)<br>
 {<br>
@@ -1513,14 +1513,14 @@ basic_iostream<_CharT, _Traits>::basic_i<br>
 #ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES<br>
<br>
 template <class _CharT, class _Traits><br>
-inline _LIBCPP_INLINE_VISIBILITY<br>
+inline<br>
 basic_iostream<_CharT, _Traits>::basic_iostream(basic_iostream&& __rhs)<br>
     : basic_istream<_CharT, _Traits>(_VSTD::move(__rhs))<br>
 {<br>
 }<br>
<br>
 template <class _CharT, class _Traits><br>
-inline _LIBCPP_INLINE_VISIBILITY<br>
+inline<br>
 basic_iostream<_CharT, _Traits>&<br>
 basic_iostream<_CharT, _Traits>::operator=(basic_iostream&& __rhs)<br>
 {<br>
@@ -1536,7 +1536,7 @@ basic_iostream<_CharT, _Traits>::~basic_<br>
 }<br>
<br>
 template <class _CharT, class _Traits><br>
-inline _LIBCPP_INLINE_VISIBILITY<br>
+inline<br>
 void<br>
 basic_iostream<_CharT, _Traits>::swap(basic_iostream& __rhs)<br>
 {<br>
@@ -1645,7 +1645,7 @@ getline(basic_istream<_CharT, _Traits>&<br>
 }<br>
<br>
 template<class _CharT, class _Traits, class _Allocator><br>
-inline _LIBCPP_INLINE_VISIBILITY<br>
+inline<br>
 basic_istream<_CharT, _Traits>&<br>
 getline(basic_istream<_CharT, _Traits>& __is,<br>
         basic_string<_CharT, _Traits, _Allocator>& __str)<br>
@@ -1656,7 +1656,7 @@ getline(basic_istream<_CharT, _Traits>&<br>
 #ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES<br>
<br>
 template<class _CharT, class _Traits, class _Allocator><br>
-inline _LIBCPP_INLINE_VISIBILITY<br>
+inline<br>
 basic_istream<_CharT, _Traits>&<br>
 getline(basic_istream<_CharT, _Traits>&& __is,<br>
         basic_string<_CharT, _Traits, _Allocator>& __str, _CharT __dlm)<br>
@@ -1665,7 +1665,7 @@ getline(basic_istream<_CharT, _Traits>&&<br>
 }<br>
<br>
 template<class _CharT, class _Traits, class _Allocator><br>
-inline _LIBCPP_INLINE_VISIBILITY<br>
+inline<br>
 basic_istream<_CharT, _Traits>&<br>
 getline(basic_istream<_CharT, _Traits>&& __is,<br>
         basic_string<_CharT, _Traits, _Allocator>& __str)<br>
<br>
Modified: libcxx/trunk/include/ostream<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/libcxx/trunk/include/ostream?rev=255177&r1=255176&r2=255177&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/libcxx/trunk/include/ostream?rev=255177&r1=255176&r2=255177&view=diff</a><br>
==============================================================================<br>
--- libcxx/trunk/include/ostream (original)<br>
+++ libcxx/trunk/include/ostream Wed Dec  9 17:42:30 2015<br>
@@ -275,7 +275,7 @@ basic_ostream<_CharT, _Traits>::sentry::<br>
 }<br>
<br>
 template <class _CharT, class _Traits><br>
-inline _LIBCPP_INLINE_VISIBILITY<br>
+inline<br>
 basic_ostream<_CharT, _Traits>::basic_ostream(basic_streambuf<char_type, traits_type>* __sb)<br>
 {<br>
     this->init(__sb);<br>
@@ -284,14 +284,14 @@ basic_ostream<_CharT, _Traits>::basic_os<br>
 #ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES<br>
<br>
 template <class _CharT, class _Traits><br>
-inline _LIBCPP_INLINE_VISIBILITY<br>
+inline<br>
 basic_ostream<_CharT, _Traits>::basic_ostream(basic_ostream&& __rhs)<br>
 {<br>
     this->move(__rhs);<br>
 }<br>
<br>
 template <class _CharT, class _Traits><br>
-inline _LIBCPP_INLINE_VISIBILITY<br>
+inline<br>
 basic_ostream<_CharT, _Traits>&<br>
 basic_ostream<_CharT, _Traits>::operator=(basic_ostream&& __rhs)<br>
 {<br>
@@ -307,7 +307,7 @@ basic_ostream<_CharT, _Traits>::~basic_o<br>
 }<br>
<br>
 template <class _CharT, class _Traits><br>
-inline _LIBCPP_INLINE_VISIBILITY<br>
+inline<br>
 void<br>
 basic_ostream<_CharT, _Traits>::swap(basic_ostream& __rhs)<br>
 {<br>
@@ -315,7 +315,7 @@ basic_ostream<_CharT, _Traits>::swap(bas<br>
 }<br>
<br>
 template <class _CharT, class _Traits><br>
-inline _LIBCPP_INLINE_VISIBILITY<br>
+inline<br>
 basic_ostream<_CharT, _Traits>&<br>
 basic_ostream<_CharT, _Traits>::operator<<(basic_ostream& (*__pf)(basic_ostream&))<br>
 {<br>
@@ -323,7 +323,7 @@ basic_ostream<_CharT, _Traits>::operator<br>
 }<br>
<br>
 template <class _CharT, class _Traits><br>
-inline _LIBCPP_INLINE_VISIBILITY<br>
+inline<br>
 basic_ostream<_CharT, _Traits>&<br>
 basic_ostream<_CharT, _Traits>::operator<<(basic_ios<char_type, traits_type>&<br>
                                            (*__pf)(basic_ios<char_type,traits_type>&))<br>
@@ -333,7 +333,7 @@ basic_ostream<_CharT, _Traits>::operator<br>
 }<br>
<br>
 template <class _CharT, class _Traits><br>
-inline _LIBCPP_INLINE_VISIBILITY<br>
+inline<br>
 basic_ostream<_CharT, _Traits>&<br>
 basic_ostream<_CharT, _Traits>::operator<<(ios_base& (*__pf)(ios_base&))<br>
 {<br>
@@ -989,7 +989,7 @@ basic_ostream<_CharT, _Traits>::flush()<br>
 }<br>
<br>
 template <class _CharT, class _Traits><br>
-inline _LIBCPP_INLINE_VISIBILITY<br>
+inline<br>
 typename basic_ostream<_CharT, _Traits>::pos_type<br>
 basic_ostream<_CharT, _Traits>::tellp()<br>
 {<br>
@@ -999,7 +999,7 @@ basic_ostream<_CharT, _Traits>::tellp()<br>
 }<br>
<br>
 template <class _CharT, class _Traits><br>
-inline _LIBCPP_INLINE_VISIBILITY<br>
+inline<br>
 basic_ostream<_CharT, _Traits>&<br>
 basic_ostream<_CharT, _Traits>::seekp(pos_type __pos)<br>
 {<br>
@@ -1013,7 +1013,7 @@ basic_ostream<_CharT, _Traits>::seekp(po<br>
 }<br>
<br>
 template <class _CharT, class _Traits><br>
-inline _LIBCPP_INLINE_VISIBILITY<br>
+inline<br>
 basic_ostream<_CharT, _Traits>&<br>
 basic_ostream<_CharT, _Traits>::seekp(off_type __off, ios_base::seekdir __dir)<br>
 {<br>
@@ -1027,7 +1027,7 @@ basic_ostream<_CharT, _Traits>::seekp(of<br>
 }<br>
<br>
 template <class _CharT, class _Traits><br>
-inline _LIBCPP_INLINE_VISIBILITY<br>
+inline<br>
 basic_ostream<_CharT, _Traits>&<br>
 endl(basic_ostream<_CharT, _Traits>& __os)<br>
 {<br>
@@ -1037,7 +1037,7 @@ endl(basic_ostream<_CharT, _Traits>& __o<br>
 }<br>
<br>
 template <class _CharT, class _Traits><br>
-inline _LIBCPP_INLINE_VISIBILITY<br>
+inline<br>
 basic_ostream<_CharT, _Traits>&<br>
 ends(basic_ostream<_CharT, _Traits>& __os)<br>
 {<br>
@@ -1046,7 +1046,7 @@ ends(basic_ostream<_CharT, _Traits>& __o<br>
 }<br>
<br>
 template <class _CharT, class _Traits><br>
-inline _LIBCPP_INLINE_VISIBILITY<br>
+inline<br>
 basic_ostream<_CharT, _Traits>&<br>
 flush(basic_ostream<_CharT, _Traits>& __os)<br>
 {<br>
@@ -1057,7 +1057,7 @@ flush(basic_ostream<_CharT, _Traits>& __<br>
 #ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES<br>
<br>
 template <class _Stream, class _Tp><br>
-inline _LIBCPP_INLINE_VISIBILITY<br>
+inline<br>
 typename enable_if<br>
 <<br>
     !is_lvalue_reference<_Stream>::value &&<br>
@@ -1081,7 +1081,7 @@ operator<<(basic_ostream<_CharT, _Traits<br>
 }<br>
<br>
 template <class _CharT, class _Traits><br>
-inline _LIBCPP_INLINE_VISIBILITY<br>
+inline<br>
 basic_ostream<_CharT, _Traits>&<br>
 operator<<(basic_ostream<_CharT, _Traits>& __os, const error_code& __ec)<br>
 {<br>
@@ -1089,7 +1089,7 @@ operator<<(basic_ostream<_CharT, _Traits<br>
 }<br>
<br>
 template<class _CharT, class _Traits, class _Yp><br>
-inline _LIBCPP_INLINE_VISIBILITY<br>
+inline<br>
 basic_ostream<_CharT, _Traits>&<br>
 operator<<(basic_ostream<_CharT, _Traits>& __os, shared_ptr<_Yp> const& __p)<br>
 {<br>
<br>
Modified: libcxx/trunk/include/sstream<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/libcxx/trunk/include/sstream?rev=255177&r1=255176&r2=255177&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/libcxx/trunk/include/sstream?rev=255177&r1=255176&r2=255177&view=diff</a><br>
==============================================================================<br>
--- libcxx/trunk/include/sstream (original)<br>
+++ libcxx/trunk/include/sstream Wed Dec  9 17:42:30 2015<br>
@@ -236,7 +236,7 @@ protected:<br>
 };<br>
<br>
 template <class _CharT, class _Traits, class _Allocator><br>
-inline _LIBCPP_INLINE_VISIBILITY<br>
+inline<br>
 basic_stringbuf<_CharT, _Traits, _Allocator>::basic_stringbuf(ios_base::openmode __wch)<br>
     : __hm_(0),<br>
       __mode_(__wch)<br>
@@ -245,7 +245,7 @@ basic_stringbuf<_CharT, _Traits, _Alloca<br>
 }<br>
<br>
 template <class _CharT, class _Traits, class _Allocator><br>
-inline _LIBCPP_INLINE_VISIBILITY<br>
+inline<br>
 basic_stringbuf<_CharT, _Traits, _Allocator>::basic_stringbuf(const string_type& __s,<br>
                              ios_base::openmode __wch)<br>
     : __hm_(0),<br>
@@ -425,7 +425,7 @@ basic_stringbuf<_CharT, _Traits, _Alloca<br>
 }<br>
<br>
 template <class _CharT, class _Traits, class _Allocator><br>
-inline _LIBCPP_INLINE_VISIBILITY<br>
+inline<br>
 void<br>
 swap(basic_stringbuf<_CharT, _Traits, _Allocator>& __x,<br>
      basic_stringbuf<_CharT, _Traits, _Allocator>& __y)<br>
@@ -607,7 +607,7 @@ basic_stringbuf<_CharT, _Traits, _Alloca<br>
 }<br>
<br>
 template <class _CharT, class _Traits, class _Allocator><br>
-inline _LIBCPP_INLINE_VISIBILITY<br>
+inline<br>
 typename basic_stringbuf<_CharT, _Traits, _Allocator>::pos_type<br>
 basic_stringbuf<_CharT, _Traits, _Allocator>::seekpos(pos_type __sp,<br>
                                                       ios_base::openmode __wch)<br>
@@ -654,7 +654,7 @@ public:<br>
 };<br>
<br>
 template <class _CharT, class _Traits, class _Allocator><br>
-inline _LIBCPP_INLINE_VISIBILITY<br>
+inline<br>
 basic_istringstream<_CharT, _Traits, _Allocator>::basic_istringstream(ios_base::openmode __wch)<br>
     : basic_istream<_CharT, _Traits>(&__sb_),<br>
       __sb_(__wch | ios_base::in)<br>
@@ -662,7 +662,7 @@ basic_istringstream<_CharT, _Traits, _Al<br>
 }<br>
<br>
 template <class _CharT, class _Traits, class _Allocator><br>
-inline _LIBCPP_INLINE_VISIBILITY<br>
+inline<br>
 basic_istringstream<_CharT, _Traits, _Allocator>::basic_istringstream(const string_type& __s,<br>
                                                                       ios_base::openmode __wch)<br>
     : basic_istream<_CharT, _Traits>(&__sb_),<br>
@@ -673,7 +673,7 @@ basic_istringstream<_CharT, _Traits, _Al<br>
 #ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES<br>
<br>
 template <class _CharT, class _Traits, class _Allocator><br>
-inline _LIBCPP_INLINE_VISIBILITY<br>
+inline<br>
 basic_istringstream<_CharT, _Traits, _Allocator>::basic_istringstream(basic_istringstream&& __rhs)<br>
     : basic_istream<_CharT, _Traits>(_VSTD::move(__rhs)),<br>
       __sb_(_VSTD::move(__rhs.__sb_))<br>
@@ -693,7 +693,7 @@ basic_istringstream<_CharT, _Traits, _Al<br>
 #endif  // _LIBCPP_HAS_NO_RVALUE_REFERENCES<br>
<br>
 template <class _CharT, class _Traits, class _Allocator><br>
-inline _LIBCPP_INLINE_VISIBILITY<br>
+inline<br>
 void<br>
 basic_istringstream<_CharT, _Traits, _Allocator>::swap(basic_istringstream& __rhs)<br>
 {<br>
@@ -702,7 +702,7 @@ basic_istringstream<_CharT, _Traits, _Al<br>
 }<br>
<br>
 template <class _CharT, class _Traits, class _Allocator><br>
-inline _LIBCPP_INLINE_VISIBILITY<br>
+inline<br>
 void<br>
 swap(basic_istringstream<_CharT, _Traits, _Allocator>& __x,<br>
      basic_istringstream<_CharT, _Traits, _Allocator>& __y)<br>
@@ -711,7 +711,7 @@ swap(basic_istringstream<_CharT, _Traits<br>
 }<br>
<br>
 template <class _CharT, class _Traits, class _Allocator><br>
-inline _LIBCPP_INLINE_VISIBILITY<br>
+inline<br>
 basic_stringbuf<_CharT, _Traits, _Allocator>*<br>
 basic_istringstream<_CharT, _Traits, _Allocator>::rdbuf() const<br>
 {<br>
@@ -719,7 +719,7 @@ basic_istringstream<_CharT, _Traits, _Al<br>
 }<br>
<br>
 template <class _CharT, class _Traits, class _Allocator><br>
-inline _LIBCPP_INLINE_VISIBILITY<br>
+inline<br>
 basic_string<_CharT, _Traits, _Allocator><br>
 basic_istringstream<_CharT, _Traits, _Allocator>::str() const<br>
 {<br>
@@ -727,7 +727,7 @@ basic_istringstream<_CharT, _Traits, _Al<br>
 }<br>
<br>
 template <class _CharT, class _Traits, class _Allocator><br>
-inline _LIBCPP_INLINE_VISIBILITY<br>
+inline<br>
 void<br>
 basic_istringstream<_CharT, _Traits, _Allocator>::str(const string_type& __s)<br>
 {<br>
@@ -773,7 +773,7 @@ public:<br>
 };<br>
<br>
 template <class _CharT, class _Traits, class _Allocator><br>
-inline _LIBCPP_INLINE_VISIBILITY<br>
+inline<br>
 basic_ostringstream<_CharT, _Traits, _Allocator>::basic_ostringstream(ios_base::openmode __wch)<br>
     : basic_ostream<_CharT, _Traits>(&__sb_),<br>
       __sb_(__wch | ios_base::out)<br>
@@ -781,7 +781,7 @@ basic_ostringstream<_CharT, _Traits, _Al<br>
 }<br>
<br>
 template <class _CharT, class _Traits, class _Allocator><br>
-inline _LIBCPP_INLINE_VISIBILITY<br>
+inline<br>
 basic_ostringstream<_CharT, _Traits, _Allocator>::basic_ostringstream(const string_type& __s,<br>
                                                                       ios_base::openmode __wch)<br>
     : basic_ostream<_CharT, _Traits>(&__sb_),<br>
@@ -792,7 +792,7 @@ basic_ostringstream<_CharT, _Traits, _Al<br>
 #ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES<br>
<br>
 template <class _CharT, class _Traits, class _Allocator><br>
-inline _LIBCPP_INLINE_VISIBILITY<br>
+inline<br>
 basic_ostringstream<_CharT, _Traits, _Allocator>::basic_ostringstream(basic_ostringstream&& __rhs)<br>
     : basic_ostream<_CharT, _Traits>(_VSTD::move(__rhs)),<br>
       __sb_(_VSTD::move(__rhs.__sb_))<br>
@@ -812,7 +812,7 @@ basic_ostringstream<_CharT, _Traits, _Al<br>
 #endif  // _LIBCPP_HAS_NO_RVALUE_REFERENCES<br>
<br>
 template <class _CharT, class _Traits, class _Allocator><br>
-inline _LIBCPP_INLINE_VISIBILITY<br>
+inline<br>
 void<br>
 basic_ostringstream<_CharT, _Traits, _Allocator>::swap(basic_ostringstream& __rhs)<br>
 {<br>
@@ -821,7 +821,7 @@ basic_ostringstream<_CharT, _Traits, _Al<br>
 }<br>
<br>
 template <class _CharT, class _Traits, class _Allocator><br>
-inline _LIBCPP_INLINE_VISIBILITY<br>
+inline<br>
 void<br>
 swap(basic_ostringstream<_CharT, _Traits, _Allocator>& __x,<br>
      basic_ostringstream<_CharT, _Traits, _Allocator>& __y)<br>
@@ -830,7 +830,7 @@ swap(basic_ostringstream<_CharT, _Traits<br>
 }<br>
<br>
 template <class _CharT, class _Traits, class _Allocator><br>
-inline _LIBCPP_INLINE_VISIBILITY<br>
+inline<br>
 basic_stringbuf<_CharT, _Traits, _Allocator>*<br>
 basic_ostringstream<_CharT, _Traits, _Allocator>::rdbuf() const<br>
 {<br>
@@ -838,7 +838,7 @@ basic_ostringstream<_CharT, _Traits, _Al<br>
 }<br>
<br>
 template <class _CharT, class _Traits, class _Allocator><br>
-inline _LIBCPP_INLINE_VISIBILITY<br>
+inline<br>
 basic_string<_CharT, _Traits, _Allocator><br>
 basic_ostringstream<_CharT, _Traits, _Allocator>::str() const<br>
 {<br>
@@ -846,7 +846,7 @@ basic_ostringstream<_CharT, _Traits, _Al<br>
 }<br>
<br>
 template <class _CharT, class _Traits, class _Allocator><br>
-inline _LIBCPP_INLINE_VISIBILITY<br>
+inline<br>
 void<br>
 basic_ostringstream<_CharT, _Traits, _Allocator>::str(const string_type& __s)<br>
 {<br>
@@ -892,7 +892,7 @@ public:<br>
 };<br>
<br>
 template <class _CharT, class _Traits, class _Allocator><br>
-inline _LIBCPP_INLINE_VISIBILITY<br>
+inline<br>
 basic_stringstream<_CharT, _Traits, _Allocator>::basic_stringstream(ios_base::openmode __wch)<br>
     : basic_iostream<_CharT, _Traits>(&__sb_),<br>
       __sb_(__wch)<br>
@@ -900,7 +900,7 @@ basic_stringstream<_CharT, _Traits, _All<br>
 }<br>
<br>
 template <class _CharT, class _Traits, class _Allocator><br>
-inline _LIBCPP_INLINE_VISIBILITY<br>
+inline<br>
 basic_stringstream<_CharT, _Traits, _Allocator>::basic_stringstream(const string_type& __s,<br>
                                                                     ios_base::openmode __wch)<br>
     : basic_iostream<_CharT, _Traits>(&__sb_),<br>
@@ -911,7 +911,7 @@ basic_stringstream<_CharT, _Traits, _All<br>
 #ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES<br>
<br>
 template <class _CharT, class _Traits, class _Allocator><br>
-inline _LIBCPP_INLINE_VISIBILITY<br>
+inline<br>
 basic_stringstream<_CharT, _Traits, _Allocator>::basic_stringstream(basic_stringstream&& __rhs)<br>
     : basic_iostream<_CharT, _Traits>(_VSTD::move(__rhs)),<br>
       __sb_(_VSTD::move(__rhs.__sb_))<br>
@@ -931,7 +931,7 @@ basic_stringstream<_CharT, _Traits, _All<br>
 #endif  // _LIBCPP_HAS_NO_RVALUE_REFERENCES<br>
<br>
 template <class _CharT, class _Traits, class _Allocator><br>
-inline _LIBCPP_INLINE_VISIBILITY<br>
+inline<br>
 void<br>
 basic_stringstream<_CharT, _Traits, _Allocator>::swap(basic_stringstream& __rhs)<br>
 {<br>
@@ -940,7 +940,7 @@ basic_stringstream<_CharT, _Traits, _All<br>
 }<br>
<br>
 template <class _CharT, class _Traits, class _Allocator><br>
-inline _LIBCPP_INLINE_VISIBILITY<br>
+inline<br>
 void<br>
 swap(basic_stringstream<_CharT, _Traits, _Allocator>& __x,<br>
      basic_stringstream<_CharT, _Traits, _Allocator>& __y)<br>
@@ -949,7 +949,7 @@ swap(basic_stringstream<_CharT, _Traits,<br>
 }<br>
<br>
 template <class _CharT, class _Traits, class _Allocator><br>
-inline _LIBCPP_INLINE_VISIBILITY<br>
+inline<br>
 basic_stringbuf<_CharT, _Traits, _Allocator>*<br>
 basic_stringstream<_CharT, _Traits, _Allocator>::rdbuf() const<br>
 {<br>
@@ -957,7 +957,7 @@ basic_stringstream<_CharT, _Traits, _All<br>
 }<br>
<br>
 template <class _CharT, class _Traits, class _Allocator><br>
-inline _LIBCPP_INLINE_VISIBILITY<br>
+inline<br>
 basic_string<_CharT, _Traits, _Allocator><br>
 basic_stringstream<_CharT, _Traits, _Allocator>::str() const<br>
 {<br>
@@ -965,7 +965,7 @@ basic_stringstream<_CharT, _Traits, _All<br>
 }<br>
<br>
 template <class _CharT, class _Traits, class _Allocator><br>
-inline _LIBCPP_INLINE_VISIBILITY<br>
+inline<br>
 void<br>
 basic_stringstream<_CharT, _Traits, _Allocator>::str(const string_type& __s)<br>
 {<br>
<br>
Modified: libcxx/trunk/include/streambuf<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/libcxx/trunk/include/streambuf?rev=255177&r1=255176&r2=255177&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/libcxx/trunk/include/streambuf?rev=255177&r1=255176&r2=255177&view=diff</a><br>
==============================================================================<br>
--- libcxx/trunk/include/streambuf (original)<br>
+++ libcxx/trunk/include/streambuf Wed Dec  9 17:42:30 2015<br>
@@ -220,7 +220,7 @@ basic_streambuf<_CharT, _Traits>::~basic<br>
 }<br>
<br>
 template <class _CharT, class _Traits><br>
-inline _LIBCPP_INLINE_VISIBILITY<br>
+inline<br>
 locale<br>
 basic_streambuf<_CharT, _Traits>::pubimbue(const locale& __loc)<br>
 {<br>
@@ -231,7 +231,7 @@ basic_streambuf<_CharT, _Traits>::pubimb<br>
 }<br>
<br>
 template <class _CharT, class _Traits><br>
-inline _LIBCPP_INLINE_VISIBILITY<br>
+inline<br>
 locale<br>
 basic_streambuf<_CharT, _Traits>::getloc() const<br>
 {<br>
@@ -239,7 +239,7 @@ basic_streambuf<_CharT, _Traits>::getloc<br>
 }<br>
<br>
 template <class _CharT, class _Traits><br>
-inline _LIBCPP_INLINE_VISIBILITY<br>
+inline<br>
 basic_streambuf<_CharT, _Traits>*<br>
 basic_streambuf<_CharT, _Traits>::pubsetbuf(char_type* __s, streamsize __n)<br>
 {<br>
@@ -247,7 +247,7 @@ basic_streambuf<_CharT, _Traits>::pubset<br>
 }<br>
<br>
 template <class _CharT, class _Traits><br>
-inline _LIBCPP_INLINE_VISIBILITY<br>
+inline<br>
 typename basic_streambuf<_CharT, _Traits>::pos_type<br>
 basic_streambuf<_CharT, _Traits>::pubseekoff(off_type __off,<br>
                                              ios_base::seekdir __way,<br>
@@ -257,7 +257,7 @@ basic_streambuf<_CharT, _Traits>::pubsee<br>
 }<br>
<br>
 template <class _CharT, class _Traits><br>
-inline _LIBCPP_INLINE_VISIBILITY<br>
+inline<br>
 typename basic_streambuf<_CharT, _Traits>::pos_type<br>
 basic_streambuf<_CharT, _Traits>::pubseekpos(pos_type __sp,<br>
                                              ios_base::openmode __which)<br>
@@ -266,7 +266,7 @@ basic_streambuf<_CharT, _Traits>::pubsee<br>
 }<br>
<br>
 template <class _CharT, class _Traits><br>
-inline _LIBCPP_INLINE_VISIBILITY<br>
+inline<br>
 int<br>
 basic_streambuf<_CharT, _Traits>::pubsync()<br>
 {<br>
@@ -274,7 +274,7 @@ basic_streambuf<_CharT, _Traits>::pubsyn<br>
 }<br>
<br>
 template <class _CharT, class _Traits><br>
-inline _LIBCPP_INLINE_VISIBILITY<br>
+inline<br>
 streamsize<br>
 basic_streambuf<_CharT, _Traits>::in_avail()<br>
 {<br>
@@ -284,7 +284,7 @@ basic_streambuf<_CharT, _Traits>::in_ava<br>
 }<br>
<br>
 template <class _CharT, class _Traits><br>
-inline _LIBCPP_INLINE_VISIBILITY<br>
+inline<br>
 typename basic_streambuf<_CharT, _Traits>::int_type<br>
 basic_streambuf<_CharT, _Traits>::snextc()<br>
 {<br>
@@ -294,7 +294,7 @@ basic_streambuf<_CharT, _Traits>::snextc<br>
 }<br>
<br>
 template <class _CharT, class _Traits><br>
-inline _LIBCPP_INLINE_VISIBILITY<br>
+inline<br>
 typename basic_streambuf<_CharT, _Traits>::int_type<br>
 basic_streambuf<_CharT, _Traits>::sbumpc()<br>
 {<br>
@@ -304,7 +304,7 @@ basic_streambuf<_CharT, _Traits>::sbumpc<br>
 }<br>
<br>
 template <class _CharT, class _Traits><br>
-inline _LIBCPP_INLINE_VISIBILITY<br>
+inline<br>
 typename basic_streambuf<_CharT, _Traits>::int_type<br>
 basic_streambuf<_CharT, _Traits>::sgetc()<br>
 {<br>
@@ -314,7 +314,7 @@ basic_streambuf<_CharT, _Traits>::sgetc(<br>
 }<br>
<br>
 template <class _CharT, class _Traits><br>
-inline _LIBCPP_INLINE_VISIBILITY<br>
+inline<br>
 streamsize<br>
 basic_streambuf<_CharT, _Traits>::sgetn(char_type* __s, streamsize __n)<br>
 {<br>
@@ -322,7 +322,7 @@ basic_streambuf<_CharT, _Traits>::sgetn(<br>
 }<br>
<br>
 template <class _CharT, class _Traits><br>
-inline _LIBCPP_INLINE_VISIBILITY<br>
+inline<br>
 typename basic_streambuf<_CharT, _Traits>::int_type<br>
 basic_streambuf<_CharT, _Traits>::sputbackc(char_type __c)<br>
 {<br>
@@ -332,7 +332,7 @@ basic_streambuf<_CharT, _Traits>::sputba<br>
 }<br>
<br>
 template <class _CharT, class _Traits><br>
-inline _LIBCPP_INLINE_VISIBILITY<br>
+inline<br>
 typename basic_streambuf<_CharT, _Traits>::int_type<br>
 basic_streambuf<_CharT, _Traits>::sungetc()<br>
 {<br>
@@ -342,7 +342,7 @@ basic_streambuf<_CharT, _Traits>::sunget<br>
 }<br>
<br>
 template <class _CharT, class _Traits><br>
-inline _LIBCPP_INLINE_VISIBILITY<br>
+inline<br>
 typename basic_streambuf<_CharT, _Traits>::int_type<br>
 basic_streambuf<_CharT, _Traits>::sputc(char_type __c)<br>
 {<br>
@@ -353,7 +353,7 @@ basic_streambuf<_CharT, _Traits>::sputc(<br>
 }<br>
<br>
 template <class _CharT, class _Traits><br>
-inline _LIBCPP_INLINE_VISIBILITY<br>
+inline<br>
 streamsize<br>
 basic_streambuf<_CharT, _Traits>::sputn(const char_type* __s, streamsize __n)<br>
 {<br>
@@ -411,7 +411,7 @@ basic_streambuf<_CharT, _Traits>::swap(b<br>
 }<br>
<br>
 template <class _CharT, class _Traits><br>
-inline _LIBCPP_INLINE_VISIBILITY<br>
+inline<br>
 void<br>
 basic_streambuf<_CharT, _Traits>::gbump(int __n)<br>
 {<br>
@@ -419,7 +419,7 @@ basic_streambuf<_CharT, _Traits>::gbump(<br>
 }<br>
<br>
 template <class _CharT, class _Traits><br>
-inline _LIBCPP_INLINE_VISIBILITY<br>
+inline<br>
 void<br>
 basic_streambuf<_CharT, _Traits>::setg(char_type* __gbeg, char_type* __gnext,<br>
                                                           char_type* __gend)<br>
@@ -430,7 +430,7 @@ basic_streambuf<_CharT, _Traits>::setg(c<br>
 }<br>
<br>
 template <class _CharT, class _Traits><br>
-inline _LIBCPP_INLINE_VISIBILITY<br>
+inline<br>
 void<br>
 basic_streambuf<_CharT, _Traits>::pbump(int __n)<br>
 {<br>
@@ -438,7 +438,7 @@ basic_streambuf<_CharT, _Traits>::pbump(<br>
 }<br>
<br>
 template <class _CharT, class _Traits><br>
-inline _LIBCPP_INLINE_VISIBILITY<br>
+inline<br>
 void<br>
 basic_streambuf<_CharT, _Traits>::setp(char_type* __pbeg, char_type* __pend)<br>
 {<br>
<br>
<br>
_______________________________________________<br>
cfe-commits mailing list<br>
<a href="mailto:cfe-commits@lists.llvm.org">cfe-commits@lists.llvm.org</a><br>
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits</a><br>
</blockquote></div><br></div>