Root/
Source at commit 1460 created 12 years 10 months ago. By azimutz, rsync contents of the theme's folder, not the folder it self. | |
---|---|
1 | /*␉Copyright (C) 2004 Garrett A. Kajmowicz␊ |
2 | ␊ |
3 | ␉This file is part of the uClibc++ Library.␊ |
4 | ␊ |
5 | ␉This library is free software; you can redistribute it and/or␊ |
6 | ␉modify it under the terms of the GNU Lesser General Public␊ |
7 | ␉License as published by the Free Software Foundation; either␊ |
8 | ␉version 2.1 of the License, or (at your option) any later version.␊ |
9 | ␊ |
10 | ␉This library is distributed in the hope that it will be useful,␊ |
11 | ␉but WITHOUT ANY WARRANTY; without even the implied warranty of␊ |
12 | ␉MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU␊ |
13 | ␉Lesser General Public License for more details.␊ |
14 | ␊ |
15 | ␉You should have received a copy of the GNU Lesser General Public␊ |
16 | ␉License along with this library; if not, write to the Free Software␊ |
17 | ␉Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA␊ |
18 | ␊ |
19 | */␊ |
20 | ␊ |
21 | #include <exception>␊ |
22 | #include <func_exception>␊ |
23 | #include <stdexcept>␊ |
24 | #include <cstdlib>␊ |
25 | ␊ |
26 | //We can't do this yet because gcc is too stupid to be able to handle␊ |
27 | //different implementations of exception class.␊ |
28 | ␊ |
29 | //#undef __UCLIBCXX_EXCEPTION_SUPPORT__␊ |
30 | ␊ |
31 | #ifdef __UCLIBCXX_EXCEPTION_SUPPORT__␊ |
32 | ␊ |
33 | namespace std{␊ |
34 | ␉_UCXXEXPORT static const char * __std_exception_what_value = "exception";␊ |
35 | ␊ |
36 | ␉//We are providing our own versions to be sneaky␊ |
37 | ␊ |
38 | ␊ |
39 | ␉_UCXXEXPORT exception::~exception() throw(){␊ |
40 | ␉␉//Empty function␊ |
41 | ␉}␊ |
42 | ␊ |
43 | ␉_UCXXEXPORT const char* exception::what() const throw(){␊ |
44 | ␉␉return __std_exception_what_value;␊ |
45 | ␉}␊ |
46 | ␊ |
47 | ␉_UCXXEXPORT bad_exception::~bad_exception() throw(){␊ |
48 | ␊ |
49 | ␉}␊ |
50 | ␉␊ |
51 | }␊ |
52 | #else␊ |
53 | namespace std{␊ |
54 | ␉_UCXXEXPORT exception::~exception() {␊ |
55 | ␉␉abort();␊ |
56 | ␉}␊ |
57 | ␉␊ |
58 | ␉_UCXXEXPORT const char* exception::what() const {␊ |
59 | ␉␉abort();␊ |
60 | ␉}␊ |
61 | ␉␊ |
62 | ␉_UCXXEXPORT bad_exception::~bad_exception() {␊ |
63 | ␉␉abort();␊ |
64 | ␉}␊ |
65 | ␉␊ |
66 | }␊ |
67 | #endif␊ |
68 | ␊ |
69 | void␊ |
70 | std::terminate()␊ |
71 | {␊ |
72 | #ifdef __UCLIBCXX_EXCEPTION_SUPPORT__␊ |
73 | try␊ |
74 | {␊ |
75 | #endif // __UCLIBCXX_EXCEPTION_SUPPORT__␊ |
76 | (*std::terminate_handler())();␊ |
77 | // handler should not return␊ |
78 | ␉␉abort ();␊ |
79 | #ifdef __UCLIBCXX_EXCEPTION_SUPPORT__␊ |
80 | }␊ |
81 | catch (...)␊ |
82 | {␊ |
83 | // handler should not throw exception␊ |
84 | abort ();␊ |
85 | }␊ |
86 | #endif // __UCLIBCXX_EXCEPTION_SUPPORT__␊ |
87 | }␊ |
88 |