1// { dg-do compile } 2 3namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) { 4 template<typename _Tp> class new_allocator { 5 }; 6} 7namespace std { 8 template<typename> class allocator; 9 template<class _CharT> struct char_traits; 10 template<typename _CharT, typename _Traits = char_traits<_CharT>, typename _Alloc = allocator<_CharT> > class basic_string; 11 typedef basic_string<char> string; 12 template<typename _Tp> class allocator: public __gnu_cxx::new_allocator<_Tp> { 13 }; 14 template<typename _CharT, typename _Traits, typename _Alloc> class basic_string { 15 public: 16 basic_string(const _CharT* __s, const _Alloc& __a = _Alloc()); 17 }; 18} 19class UIException { 20}; 21class PasswordDialog { 22 void run() throw (UIException); 23}; 24class MessageBox { 25public: 26 MessageBox (std::string t) throw (UIException); 27 virtual int run() throw (UIException) ; 28}; 29extern "C" { 30 struct __jmp_buf_tag { 31 }; 32 extern int __sigsetjmp (struct __jmp_buf_tag __env[1], int __savemask) throw (); 33 typedef struct __jmp_buf_tag sigjmp_buf[1]; 34} 35sigjmp_buf password_dialog_sig_jmp_buf; 36void PasswordDialog::run() throw (UIException) 37{ 38 __sigsetjmp (password_dialog_sig_jmp_buf, 1); 39 MessageBox* errmsg = __null; 40 errmsg = new MessageBox ("E R R O R"); 41 errmsg->run(); 42} 43