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