Go to most recent revision | Details | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
4680 | right-hear | 1 | // Exception Handling support header for -*- C++ -*- |
2 | |||
3 | // Copyright (C) 1995, 1996, 1997, 1998, 2000, 2001 Free Software Foundation |
||
4 | // |
||
5 | // This file is part of GNU CC. |
||
6 | // |
||
7 | // GNU CC is free software; you can redistribute it and/or modify |
||
8 | // it under the terms of the GNU General Public License as published by |
||
9 | // the Free Software Foundation; either version 2, or (at your option) |
||
10 | // any later version. |
||
11 | // |
||
12 | // GNU CC is distributed in the hope that it will be useful, |
||
13 | // but WITHOUT ANY WARRANTY; without even the implied warranty of |
||
14 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
||
15 | // GNU General Public License for more details. |
||
16 | // |
||
17 | // You should have received a copy of the GNU General Public License |
||
18 | // along with GNU CC; see the file COPYING. If not, write to |
||
19 | // the Free Software Foundation, 59 Temple Place - Suite 330, |
||
20 | // Boston, MA 02111-1307, USA. |
||
21 | |||
22 | // As a special exception, you may use this file as part of a free software |
||
23 | // library without restriction. Specifically, if other files instantiate |
||
24 | // templates or use macros or inline functions from this file, or you compile |
||
25 | // this file and link it with other files to produce an executable, this |
||
26 | // file does not by itself cause the resulting executable to be covered by |
||
27 | // the GNU General Public License. This exception does not however |
||
28 | // invalidate any other reasons why the executable file might be covered by |
||
29 | // the GNU General Public License. |
||
30 | |||
31 | #ifndef __EXCEPTION__ |
||
32 | #define __EXCEPTION__ |
||
33 | |||
34 | extern "C++" { |
||
35 | |||
36 | namespace std |
||
37 | { |
||
38 | class exception |
||
39 | { |
||
40 | public: |
||
41 | exception() throw() { } |
||
42 | virtual ~exception() throw(); |
||
43 | virtual const char* what() const throw(); |
||
44 | }; |
||
45 | |||
46 | class bad_exception : public exception |
||
47 | { |
||
48 | public: |
||
49 | bad_exception() throw() { } |
||
50 | virtual ~bad_exception() throw(); |
||
51 | }; |
||
52 | |||
53 | typedef void (*terminate_handler) (); |
||
54 | typedef void (*unexpected_handler) (); |
||
55 | |||
56 | terminate_handler set_terminate(terminate_handler) throw(); |
||
57 | void terminate() __attribute__ ((__noreturn__)); |
||
58 | |||
59 | unexpected_handler set_unexpected(unexpected_handler) throw(); |
||
60 | void unexpected() __attribute__ ((__noreturn__)); |
||
61 | |||
62 | bool uncaught_exception() throw(); |
||
63 | } // namespace std |
||
64 | |||
65 | } // extern "C++" |
||
66 | |||
67 | #endif |