| // { dg-do compile } |
| // { dg-options "-O3 -ftracer -fsched-pressure -Wno-unused-parameter -Wno-return-type" } |
| |
| extern "C" |
| { |
| namespace std |
| { |
| class exception |
| { |
| virtual const char *what () const throw (); |
| }; |
| } |
| } |
| namespace std __attribute__ ((__visibility__ ("default"))) |
| { |
| template < typename _Alloc > class allocator; |
| template < class _CharT > struct char_traits; |
| template < typename _CharT, typename _Traits = |
| char_traits < _CharT >, typename _Alloc = |
| allocator < _CharT > >class basic_string; |
| typedef basic_string < char >string; |
| template < typename _CharT, typename _Traits = |
| char_traits < _CharT > >class basic_ios; |
| typedef basic_ios < char >ios; |
| } |
| |
| namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) |
| { |
| template < typename _Tp > class new_allocator |
| { |
| }; |
| } |
| |
| namespace std __attribute__ ((__visibility__ ("default"))) |
| { |
| template < typename _Tp > class allocator:public __gnu_cxx::new_allocator < |
| _Tp > |
| { |
| }; |
| } |
| |
| typedef int _Atomic_word; |
| namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) |
| { |
| static inline _Atomic_word |
| __attribute__ ((__unused__)) __exchange_and_add_dispatch (_Atomic_word * |
| __mem, |
| int __val) |
| { |
| } |
| } |
| |
| namespace std __attribute__ ((__visibility__ ("default"))) |
| { |
| template < typename _CharT, typename _Traits, |
| typename _Alloc > class basic_string |
| { |
| typedef _Alloc allocator_type; |
| private:struct _Rep_base |
| { |
| _Atomic_word _M_refcount; |
| }; |
| struct _Rep:_Rep_base |
| { |
| void _M_dispose (const _Alloc & __a) |
| { |
| if (__builtin_expect (this != &_S_empty_rep (), false)) |
| { |
| if (__gnu_cxx:: |
| __exchange_and_add_dispatch (&this->_M_refcount, -1) <= 0) |
| { |
| _M_destroy (__a); |
| } |
| } |
| } |
| void _M_destroy (const _Alloc &) throw (); |
| }; |
| struct _Alloc_hider:_Alloc |
| { |
| _CharT *_M_p; |
| }; |
| private:mutable _Alloc_hider _M_dataplus; |
| _CharT *_M_data () const |
| { |
| return _M_dataplus._M_p; |
| } |
| _Rep *_M_rep () const |
| { |
| return &((reinterpret_cast < _Rep * >(_M_data ()))[-1]); |
| } |
| static _Rep & _S_empty_rep () |
| { |
| } |
| public: basic_string ():_M_dataplus (_S_empty_rep ()._M_refdata (), |
| _Alloc ()) |
| { |
| } |
| basic_string (const _CharT * __s, const _Alloc & __a = _Alloc ()); |
| ~basic_string () |
| { |
| _M_rep ()->_M_dispose (this->get_allocator ()); |
| } |
| allocator_type get_allocator () const |
| { |
| } |
| }; |
| class ios_base |
| { |
| public:class failure:public exception |
| { |
| public:explicit failure (const string & __str) throw (); |
| }; |
| }; |
| template < typename _CharT, typename _Traits > class basic_ios:public |
| ios_base |
| { |
| }; |
| namespace iostreams |
| { |
| class zlib_error:public std::ios::failure |
| { |
| public:explicit zlib_error (int error); |
| private:int error_; |
| }; |
| zlib_error::zlib_error (int error):std::ios::failure ("zlib error"), |
| error_ (error) |
| { |
| } |
| } |
| } |