visibility-decoration.
authorHoward Hinnant <hhinnant@apple.com>
Wed, 22 Sep 2010 15:29:08 +0000 (15:29 +0000)
committerHoward Hinnant <hhinnant@apple.com>
Wed, 22 Sep 2010 15:29:08 +0000 (15:29 +0000)
llvm-svn: 114545

libcxx/include/initializer_list
libcxx/include/iomanip
libcxx/include/ios
libcxx/include/istream

index 671aa27..16ffccc 100644 (file)
@@ -52,7 +52,7 @@ namespace std  // purposefully not versioned
 {
 
 template<class _E>
-class initializer_list
+class _LIBCPP_VISIBLE initializer_list
 {
     const _E* __begin_;
     size_t    __size_;
index 3efce13..020180f 100644 (file)
@@ -43,10 +43,12 @@ class __iom_t1
 {
     ios_base::fmtflags __mask_;
 public:
+    _LIBCPP_INLINE_VISIBILITY
     explicit __iom_t1(ios_base::fmtflags __m) : __mask_(__m) {}
 
     template <class _CharT, class _Traits>
     friend
+    _LIBCPP_INLINE_VISIBILITY
     basic_istream<_CharT, _Traits>&
     operator>>(basic_istream<_CharT, _Traits>& __is, const __iom_t1& __x)
     {
@@ -56,6 +58,7 @@ public:
 
     template <class _CharT, class _Traits>
     friend
+    _LIBCPP_INLINE_VISIBILITY
     basic_ostream<_CharT, _Traits>&
     operator<<(basic_ostream<_CharT, _Traits>& __os, const __iom_t1& __x)
     {
@@ -77,10 +80,12 @@ class __iom_t2
 {
     ios_base::fmtflags __mask_;
 public:
+    _LIBCPP_INLINE_VISIBILITY
     explicit __iom_t2(ios_base::fmtflags __m) : __mask_(__m) {}
 
     template <class _CharT, class _Traits>
     friend
+    _LIBCPP_INLINE_VISIBILITY
     basic_istream<_CharT, _Traits>&
     operator>>(basic_istream<_CharT, _Traits>& __is, const __iom_t2& __x)
     {
@@ -90,6 +95,7 @@ public:
 
     template <class _CharT, class _Traits>
     friend
+    _LIBCPP_INLINE_VISIBILITY
     basic_ostream<_CharT, _Traits>&
     operator<<(basic_ostream<_CharT, _Traits>& __os, const __iom_t2& __x)
     {
@@ -111,10 +117,12 @@ class __iom_t3
 {
     int __base_;
 public:
+    _LIBCPP_INLINE_VISIBILITY
     explicit __iom_t3(int __b) : __base_(__b) {}
 
     template <class _CharT, class _Traits>
     friend
+    _LIBCPP_INLINE_VISIBILITY
     basic_istream<_CharT, _Traits>&
     operator>>(basic_istream<_CharT, _Traits>& __is, const __iom_t3& __x)
     {
@@ -127,6 +135,7 @@ public:
 
     template <class _CharT, class _Traits>
     friend
+    _LIBCPP_INLINE_VISIBILITY
     basic_ostream<_CharT, _Traits>&
     operator<<(basic_ostream<_CharT, _Traits>& __os, const __iom_t3& __x)
     {
@@ -152,10 +161,12 @@ class __iom_t4
 {
     _CharT __fill_;
 public:
+    _LIBCPP_INLINE_VISIBILITY
     explicit __iom_t4(_CharT __c) : __fill_(__c) {}
 
     template <class _Traits>
     friend
+    _LIBCPP_INLINE_VISIBILITY
     basic_ostream<_CharT, _Traits>&
     operator<<(basic_ostream<_CharT, _Traits>& __os, const __iom_t4& __x)
     {
@@ -178,10 +189,12 @@ class __iom_t5
 {
     int __n_;
 public:
+    _LIBCPP_INLINE_VISIBILITY
     explicit __iom_t5(int __n) : __n_(__n) {}
 
     template <class _CharT, class _Traits>
     friend
+    _LIBCPP_INLINE_VISIBILITY
     basic_istream<_CharT, _Traits>&
     operator>>(basic_istream<_CharT, _Traits>& __is, const __iom_t5& __x)
     {
@@ -191,6 +204,7 @@ public:
 
     template <class _CharT, class _Traits>
     friend
+    _LIBCPP_INLINE_VISIBILITY
     basic_ostream<_CharT, _Traits>&
     operator<<(basic_ostream<_CharT, _Traits>& __os, const __iom_t5& __x)
     {
@@ -212,10 +226,12 @@ class __iom_t6
 {
     int __n_;
 public:
+    _LIBCPP_INLINE_VISIBILITY
     explicit __iom_t6(int __n) : __n_(__n) {}
 
     template <class _CharT, class _Traits>
     friend
+    _LIBCPP_INLINE_VISIBILITY
     basic_istream<_CharT, _Traits>&
     operator>>(basic_istream<_CharT, _Traits>& __is, const __iom_t6& __x)
     {
@@ -225,6 +241,7 @@ public:
 
     template <class _CharT, class _Traits>
     friend
+    _LIBCPP_INLINE_VISIBILITY
     basic_ostream<_CharT, _Traits>&
     operator<<(basic_ostream<_CharT, _Traits>& __os, const __iom_t6& __x)
     {
@@ -254,6 +271,7 @@ class __iom_t7
     _MoneyT& __mon_;
     bool __intl_;
 public:
+    _LIBCPP_INLINE_VISIBILITY
     __iom_t7(_MoneyT& __mon, bool __intl)
         : __mon_(__mon), __intl_(__intl) {}
 
@@ -313,6 +331,7 @@ class __iom_t8
     const _MoneyT& __mon_;
     bool __intl_;
 public:
+    _LIBCPP_INLINE_VISIBILITY
     __iom_t8(const _MoneyT& __mon, bool __intl)
         : __mon_(__mon), __intl_(__intl) {}
 
@@ -371,6 +390,7 @@ class __iom_t9
     tm* __tm_;
     const _CharT* __fmt_;
 public:
+    _LIBCPP_INLINE_VISIBILITY
     __iom_t9(tm* __tm, const _CharT* __fmt)
         : __tm_(__tm), __fmt_(__fmt) {}
 
@@ -431,6 +451,7 @@ class __iom_t10
     const tm* __tm_;
     const _CharT* __fmt_;
 public:
+    _LIBCPP_INLINE_VISIBILITY
     __iom_t10(const tm* __tm, const _CharT* __fmt)
         : __tm_(__tm), __fmt_(__fmt) {}
 
index 561c351..76439ac 100644 (file)
@@ -222,7 +222,7 @@ _LIBCPP_BEGIN_NAMESPACE_STD
 
 typedef ptrdiff_t streamsize;
 
-class ios_base
+class _LIBCPP_VISIBLE ios_base
 {
 public:
     class failure;
@@ -323,6 +323,7 @@ public:
     void __set_failbit_and_consider_rethrow();
 
 protected:
+    _LIBCPP_INLINE_VISIBILITY
     ios_base() {// purposefully does no initialization
                }
 
@@ -370,7 +371,7 @@ private:
 };
 
 //enum class io_errc
-struct io_errc
+struct _LIBCPP_VISIBLE io_errc
 {
 enum _ {
     stream = 1
@@ -381,9 +382,12 @@ enum _ {
     _LIBCPP_ALWAYS_INLINE operator int() const {return __v_;}
 };
 
-template <> struct is_error_code_enum<io_errc> : public true_type { };
-template <> struct is_error_code_enum<io_errc::_> : public true_type { };
+template <>
+struct _LIBCPP_VISIBLE is_error_code_enum<io_errc> : public true_type { };
+template <>
+struct _LIBCPP_VISIBLE is_error_code_enum<io_errc::_> : public true_type { };
 
+_LIBCPP_VISIBLE
 const error_category& iostream_category();
 
 inline _LIBCPP_INLINE_VISIBILITY
@@ -400,7 +404,7 @@ make_error_condition(io_errc __e)
     return error_condition(static_cast<int>(__e), iostream_category());
 }
 
-class ios_base::failure
+class _LIBCPP_EXCEPTION_ABI ios_base::failure
     : public system_error
 {
 public:
@@ -409,7 +413,7 @@ public:
     virtual ~failure() throw();
 };
 
-class ios_base::Init
+class _LIBCPP_VISIBLE ios_base::Init
 {
 public:
     Init();
@@ -556,7 +560,7 @@ ios_base::exceptions(iostate __except)
 }
 
 template <class _CharT, class _Traits>
-class basic_ios
+class _LIBCPP_VISIBLE basic_ios
     : public ios_base
 {
 public:
@@ -604,12 +608,14 @@ public:
     char_type widen(char __c) const;
 
 protected:
+    _LIBCPP_ALWAYS_INLINE
     basic_ios() {// purposefully does no initialization
                 }
     void init(basic_streambuf<char_type, traits_type>* __sb);
 
     void move(basic_ios& __rhs);
 #ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
+    _LIBCPP_ALWAYS_INLINE
     void move(basic_ios&& __rhs) {move(__rhs);}
 #endif
     void swap(basic_ios& __rhs);
index d71ec55..b96b6a3 100644 (file)
@@ -160,7 +160,7 @@ template <class charT, class traits, class T>
 _LIBCPP_BEGIN_NAMESPACE_STD
 
 template <class _CharT, class _Traits>
-class basic_istream
+class _LIBCPP_VISIBLE basic_istream
     : virtual public basic_ios<_CharT, _Traits>
 {
     streamsize __gc_;
@@ -211,6 +211,7 @@ public:
     basic_istream& operator>>(void*& __p);
 
     // 27.7.1.3 Unformatted input:
+    _LIBCPP_INLINE_VISIBILITY
     streamsize gcount() const {return __gc_;}
     int_type get();
     basic_istream& get(char_type& __c);
@@ -237,7 +238,7 @@ public:
 };
 
 template <class _CharT, class _Traits>
-class basic_istream<_CharT, _Traits>::sentry
+class _LIBCPP_VISIBLE basic_istream<_CharT, _Traits>::sentry
 {
     bool __ok_;
 
@@ -248,6 +249,7 @@ public:
     explicit sentry(basic_istream<_CharT, _Traits>& __is, bool __noskipws = false);
 //    ~sentry() = default;
 
+    _LIBCPP_INLINE_VISIBILITY
     // explicit
         operator bool() const {return __ok_;}
 };
@@ -1477,7 +1479,7 @@ operator>>(basic_istream<_CharT, _Traits>&& __is, _Tp& __x)
 #endif  // _LIBCPP_HAS_NO_RVALUE_REFERENCES
 
 template <class _CharT, class _Traits>
-class basic_iostream
+class _LIBCPP_VISIBLE basic_iostream
     : public basic_istream<_CharT, _Traits>,
       public basic_ostream<_CharT, _Traits>
 {
@@ -1647,7 +1649,7 @@ getline(basic_istream<_CharT, _Traits>& __is,
 }
 
 template<class _CharT, class _Traits, class _Allocator>
-inline
+inline _LIBCPP_INLINE_VISIBILITY
 basic_istream<_CharT, _Traits>&
 getline(basic_istream<_CharT, _Traits>& __is,
         basic_string<_CharT, _Traits, _Allocator>& __str)
@@ -1658,7 +1660,7 @@ getline(basic_istream<_CharT, _Traits>& __is,
 #ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
 
 template<class _CharT, class _Traits, class _Allocator>
-inline
+inline _LIBCPP_INLINE_VISIBILITY
 basic_istream<_CharT, _Traits>&
 getline(basic_istream<_CharT, _Traits>&& __is,
         basic_string<_CharT, _Traits, _Allocator>& __str, _CharT __dlm)
@@ -1667,7 +1669,7 @@ getline(basic_istream<_CharT, _Traits>&& __is,
 }
 
 template<class _CharT, class _Traits, class _Allocator>
-inline
+inline _LIBCPP_INLINE_VISIBILITY
 basic_istream<_CharT, _Traits>&
 getline(basic_istream<_CharT, _Traits>&& __is,
         basic_string<_CharT, _Traits, _Allocator>& __str)