blob: e09ce01cdfc5d1fc1e24e8802c059ab16302cdde [file] [log] [blame]
// { 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] << ')';
}
}