// { dg-do compile } namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) { template class new_allocator { }; } namespace std { template class allocator; template struct char_traits; template, typename _Alloc = allocator<_CharT> > class basic_string; typedef basic_string string; template class allocator: public __gnu_cxx::new_allocator<_Tp> { }; template class basic_string { public: basic_string(const _CharT* __s, const _Alloc& __a = _Alloc()); }; } class UIException { }; class PasswordDialog { void run() throw (UIException); }; class MessageBox { public: MessageBox (std::string t) throw (UIException); virtual int run() throw (UIException) ; }; extern "C" { struct __jmp_buf_tag { }; extern int __sigsetjmp (struct __jmp_buf_tag __env[1], int __savemask) throw (); typedef struct __jmp_buf_tag sigjmp_buf[1]; } sigjmp_buf password_dialog_sig_jmp_buf; void PasswordDialog::run() throw (UIException) { __sigsetjmp (password_dialog_sig_jmp_buf, 1); MessageBox* errmsg = __null; errmsg = new MessageBox ("E R R O R"); errmsg->run(); }