| // { dg-lto-do link } |
| // { dg-require-effective-target fpic } |
| // { dg-require-effective-target lto_incremental } |
| // { dg-lto-options {{-fPIC -flto -Wno-return-type}} } |
| // { dg-extra-ld-options "-fPIC -r -nostdlib" } |
| |
| namespace std __attribute__ ((__visibility__ ("default"))) |
| { |
| template<class _CharT> struct char_traits; |
| template<typename _CharT, typename _Traits = char_traits<_CharT> > |
| class basic_ostream; |
| template<typename _CharT, typename _Traits = char_traits<_CharT> > |
| class istreambuf_iterator; |
| typedef basic_ostream<char> ostream; |
| template<typename _CharT, typename _InIter = istreambuf_iterator<_CharT> > |
| class num_get; |
| struct locale { |
| class facet; |
| }; |
| class locale::facet { |
| }; |
| enum _Ios_Iostate { _S_beg = 0, _S_cur = 1, _S_end = 2, |
| _S_ios_seekdir_end = 1L << 16 }; |
| class ios_base { |
| public: |
| typedef _Ios_Iostate iostate; |
| }; |
| template<typename _CharT, typename _InIter> |
| class num_get : public locale::facet { |
| typedef _InIter iter_type; |
| template<typename _ValueT> iter_type |
| _M_extract_int(iter_type, iter_type, ios_base&, |
| ios_base::iostate&, _ValueT&) const; |
| virtual iter_type |
| do_get(iter_type, iter_type, ios_base&, ios_base::iostate&, bool&) const; |
| }; |
| extern template class num_get<char>; |
| template<typename _CharT, typename _Traits> |
| class basic_ios : public ios_base { |
| typedef num_get<_CharT, istreambuf_iterator<_CharT, _Traits> > |
| __num_get_type; |
| const __num_get_type* _M_num_get; |
| }; |
| template<typename _CharT, typename _Traits> |
| class basic_ostream : virtual public basic_ios<_CharT, _Traits> { |
| public: |
| typedef basic_ostream<_CharT, _Traits> __ostream_type; |
| __ostream_type& operator<<(double __f) { } |
| }; |
| typedef double Real; |
| class Vector { |
| public: |
| Real operator[](int n) const { } |
| }; |
| std::ostream& operator<<(std::ostream& s, const Vector& vec) |
| { |
| int i; |
| s << vec[i] << ')'; |
| } |
| } |