/src/openexr/IlmBase/Iex/IexBaseExc.cpp
Line | Count | Source (jump to first uncovered line) |
1 | | /////////////////////////////////////////////////////////////////////////// |
2 | | // |
3 | | // Copyright (c) 2002-2012, Industrial Light & Magic, a division of Lucas |
4 | | // Digital Ltd. LLC |
5 | | // |
6 | | // All rights reserved. |
7 | | // |
8 | | // Redistribution and use in source and binary forms, with or without |
9 | | // modification, are permitted provided that the following conditions are |
10 | | // met: |
11 | | // * Redistributions of source code must retain the above copyright |
12 | | // notice, this list of conditions and the following disclaimer. |
13 | | // * Redistributions in binary form must reproduce the above |
14 | | // copyright notice, this list of conditions and the following disclaimer |
15 | | // in the documentation and/or other materials provided with the |
16 | | // distribution. |
17 | | // * Neither the name of Industrial Light & Magic nor the names of |
18 | | // its contributors may be used to endorse or promote products derived |
19 | | // from this software without specific prior written permission. |
20 | | // |
21 | | // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS |
22 | | // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT |
23 | | // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR |
24 | | // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT |
25 | | // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, |
26 | | // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT |
27 | | // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, |
28 | | // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY |
29 | | // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
30 | | // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
31 | | // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
32 | | // |
33 | | /////////////////////////////////////////////////////////////////////////// |
34 | | |
35 | | |
36 | | |
37 | | //--------------------------------------------------------------------- |
38 | | // |
39 | | // Constructors and destructors for our exception base class. |
40 | | // |
41 | | //--------------------------------------------------------------------- |
42 | | |
43 | | #include "IexExport.h" |
44 | | #include "IexBaseExc.h" |
45 | | #include "IexMacros.h" |
46 | | #include "IexErrnoExc.h" |
47 | | #include "IexMathExc.h" |
48 | | |
49 | | #ifdef _WIN32 |
50 | | #include <windows.h> |
51 | | #endif |
52 | | |
53 | | #include <stdlib.h> |
54 | | |
55 | | IEX_INTERNAL_NAMESPACE_SOURCE_ENTER |
56 | | |
57 | | |
58 | | namespace { |
59 | | |
60 | | StackTracer currentStackTracer = 0; |
61 | | |
62 | | } // namespace |
63 | | |
64 | | |
65 | | void |
66 | | setStackTracer (StackTracer stackTracer) |
67 | 0 | { |
68 | 0 | currentStackTracer = stackTracer; |
69 | 0 | } |
70 | | |
71 | | |
72 | | StackTracer |
73 | | stackTracer () |
74 | 0 | { |
75 | 0 | return currentStackTracer; |
76 | 0 | } |
77 | | |
78 | | |
79 | | BaseExc::BaseExc (const char* s) throw () : |
80 | | _message (s? s: ""), |
81 | | _stackTrace (currentStackTracer? currentStackTracer(): "") |
82 | 0 | { |
83 | | // empty |
84 | 0 | } |
85 | | |
86 | | |
87 | | BaseExc::BaseExc (const std::string &s) throw () : |
88 | | _message (s), |
89 | | _stackTrace (currentStackTracer? currentStackTracer(): "") |
90 | 0 | { |
91 | | // empty |
92 | 0 | } |
93 | | |
94 | | |
95 | | BaseExc::BaseExc (std::stringstream &s) throw () : |
96 | | _message (s.str()), |
97 | | _stackTrace (currentStackTracer? currentStackTracer(): "") |
98 | 0 | { |
99 | | // empty |
100 | 0 | } |
101 | | |
102 | | |
103 | | BaseExc::BaseExc (const BaseExc &be) throw () : |
104 | | _message (be._message), |
105 | | _stackTrace (be._stackTrace) |
106 | 0 | { |
107 | | // empty |
108 | 0 | } |
109 | | |
110 | | |
111 | | BaseExc::~BaseExc () throw () |
112 | 0 | { |
113 | | // empty |
114 | 0 | } |
115 | | |
116 | | |
117 | | const char * |
118 | | BaseExc::what () const throw () |
119 | 0 | { |
120 | 0 | return _message.c_str(); |
121 | 0 | } |
122 | | |
123 | | |
124 | | BaseExc & |
125 | | BaseExc::assign (std::stringstream &s) |
126 | 0 | { |
127 | 0 | _message.assign (s.str()); |
128 | 0 | return *this; |
129 | 0 | } |
130 | | |
131 | | BaseExc & |
132 | | BaseExc::append (std::stringstream &s) |
133 | 0 | { |
134 | 0 | _message.append (s.str()); |
135 | 0 | return *this; |
136 | 0 | } |
137 | | |
138 | | const std::string & |
139 | | BaseExc::message() const |
140 | 0 | { |
141 | 0 | return _message; |
142 | 0 | } |
143 | | |
144 | | BaseExc & |
145 | | BaseExc::operator = (std::stringstream &s) |
146 | 0 | { |
147 | 0 | return assign (s); |
148 | 0 | } |
149 | | |
150 | | |
151 | | BaseExc & |
152 | | BaseExc::operator += (std::stringstream &s) |
153 | 0 | { |
154 | 0 | return append (s); |
155 | 0 | } |
156 | | |
157 | | |
158 | | BaseExc & |
159 | | BaseExc::assign (const char *s) |
160 | 0 | { |
161 | 0 | _message.assign(s); |
162 | 0 | return *this; |
163 | 0 | } |
164 | | |
165 | | |
166 | | BaseExc & |
167 | | BaseExc::operator = (const char *s) |
168 | 0 | { |
169 | 0 | return assign(s); |
170 | 0 | } |
171 | | |
172 | | |
173 | | BaseExc & |
174 | | BaseExc::append (const char *s) |
175 | 0 | { |
176 | 0 | _message.append(s); |
177 | 0 | return *this; |
178 | 0 | } |
179 | | |
180 | | |
181 | | BaseExc & |
182 | | BaseExc::operator += (const char *s) |
183 | 0 | { |
184 | 0 | return append(s); |
185 | 0 | } |
186 | | |
187 | | |
188 | | const std::string & |
189 | | BaseExc::stackTrace () const |
190 | 0 | { |
191 | 0 | return _stackTrace; |
192 | 0 | } |
193 | | |
194 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, ArgExc, BaseExc) |
195 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, LogicExc, BaseExc) |
196 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, InputExc, BaseExc) |
197 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, IoExc, BaseExc) |
198 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, MathExc, BaseExc) |
199 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, ErrnoExc, BaseExc) |
200 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, NoImplExc, BaseExc) |
201 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, NullExc, BaseExc) |
202 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, TypeExc, BaseExc) |
203 | | |
204 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EpermExc, ErrnoExc) |
205 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EnoentExc, ErrnoExc) |
206 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EsrchExc, ErrnoExc) |
207 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EintrExc, ErrnoExc) |
208 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EioExc, ErrnoExc) |
209 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EnxioExc, ErrnoExc) |
210 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, E2bigExc, ErrnoExc) |
211 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EnoexecExc, ErrnoExc) |
212 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EbadfExc, ErrnoExc) |
213 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EchildExc, ErrnoExc) |
214 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EagainExc, ErrnoExc) |
215 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EnomemExc, ErrnoExc) |
216 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EaccesExc, ErrnoExc) |
217 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EfaultExc, ErrnoExc) |
218 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EnotblkExc, ErrnoExc) |
219 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EbusyExc, ErrnoExc) |
220 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EexistExc, ErrnoExc) |
221 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, ExdevExc, ErrnoExc) |
222 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EnodevExc, ErrnoExc) |
223 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EnotdirExc, ErrnoExc) |
224 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EisdirExc, ErrnoExc) |
225 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EinvalExc, ErrnoExc) |
226 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EnfileExc, ErrnoExc) |
227 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EmfileExc, ErrnoExc) |
228 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EnottyExc, ErrnoExc) |
229 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EtxtbsyExc, ErrnoExc) |
230 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EfbigExc, ErrnoExc) |
231 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EnospcExc, ErrnoExc) |
232 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EspipeExc, ErrnoExc) |
233 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, ErofsExc, ErrnoExc) |
234 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EmlinkExc, ErrnoExc) |
235 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EpipeExc, ErrnoExc) |
236 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EdomExc, ErrnoExc) |
237 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, ErangeExc, ErrnoExc) |
238 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EnomsgExc, ErrnoExc) |
239 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EidrmExc, ErrnoExc) |
240 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EchrngExc, ErrnoExc) |
241 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, El2nsyncExc, ErrnoExc) |
242 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, El3hltExc, ErrnoExc) |
243 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, El3rstExc, ErrnoExc) |
244 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, ElnrngExc, ErrnoExc) |
245 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EunatchExc, ErrnoExc) |
246 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EnocsiExc, ErrnoExc) |
247 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, El2hltExc, ErrnoExc) |
248 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EdeadlkExc, ErrnoExc) |
249 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EnolckExc, ErrnoExc) |
250 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EbadeExc, ErrnoExc) |
251 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EbadrExc, ErrnoExc) |
252 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, ExfullExc, ErrnoExc) |
253 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EnoanoExc, ErrnoExc) |
254 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EbadrqcExc, ErrnoExc) |
255 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EbadsltExc, ErrnoExc) |
256 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EdeadlockExc, ErrnoExc) |
257 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EbfontExc, ErrnoExc) |
258 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EnostrExc, ErrnoExc) |
259 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EnodataExc, ErrnoExc) |
260 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EtimeExc, ErrnoExc) |
261 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EnosrExc, ErrnoExc) |
262 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EnonetExc, ErrnoExc) |
263 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EnopkgExc, ErrnoExc) |
264 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EremoteExc, ErrnoExc) |
265 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EnolinkExc, ErrnoExc) |
266 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EadvExc, ErrnoExc) |
267 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EsrmntExc, ErrnoExc) |
268 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EcommExc, ErrnoExc) |
269 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EprotoExc, ErrnoExc) |
270 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EmultihopExc, ErrnoExc) |
271 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EbadmsgExc, ErrnoExc) |
272 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EnametoolongExc, ErrnoExc) |
273 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EoverflowExc, ErrnoExc) |
274 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EnotuniqExc, ErrnoExc) |
275 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EbadfdExc, ErrnoExc) |
276 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EremchgExc, ErrnoExc) |
277 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, ElibaccExc, ErrnoExc) |
278 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, ElibbadExc, ErrnoExc) |
279 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, ElibscnExc, ErrnoExc) |
280 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, ElibmaxExc, ErrnoExc) |
281 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, ElibexecExc, ErrnoExc) |
282 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EilseqExc, ErrnoExc) |
283 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EnosysExc, ErrnoExc) |
284 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EloopExc, ErrnoExc) |
285 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, ErestartExc, ErrnoExc) |
286 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EstrpipeExc, ErrnoExc) |
287 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EnotemptyExc, ErrnoExc) |
288 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EusersExc, ErrnoExc) |
289 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EnotsockExc, ErrnoExc) |
290 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EdestaddrreqExc, ErrnoExc) |
291 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EmsgsizeExc, ErrnoExc) |
292 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EprototypeExc, ErrnoExc) |
293 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EnoprotooptExc, ErrnoExc) |
294 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EprotonosupportExc, ErrnoExc) |
295 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EsocktnosupportExc, ErrnoExc) |
296 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EopnotsuppExc, ErrnoExc) |
297 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EpfnosupportExc, ErrnoExc) |
298 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EafnosupportExc, ErrnoExc) |
299 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EaddrinuseExc, ErrnoExc) |
300 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EaddrnotavailExc, ErrnoExc) |
301 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EnetdownExc, ErrnoExc) |
302 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EnetunreachExc, ErrnoExc) |
303 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EnetresetExc, ErrnoExc) |
304 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EconnabortedExc, ErrnoExc) |
305 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EconnresetExc, ErrnoExc) |
306 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EnobufsExc, ErrnoExc) |
307 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EisconnExc, ErrnoExc) |
308 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EnotconnExc, ErrnoExc) |
309 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EshutdownExc, ErrnoExc) |
310 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EtoomanyrefsExc, ErrnoExc) |
311 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EtimedoutExc, ErrnoExc) |
312 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EconnrefusedExc, ErrnoExc) |
313 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EhostdownExc, ErrnoExc) |
314 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EhostunreachExc, ErrnoExc) |
315 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EalreadyExc, ErrnoExc) |
316 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EinprogressExc, ErrnoExc) |
317 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EstaleExc, ErrnoExc) |
318 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EioresidExc, ErrnoExc) |
319 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EucleanExc, ErrnoExc) |
320 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EnotnamExc, ErrnoExc) |
321 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EnavailExc, ErrnoExc) |
322 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EisnamExc, ErrnoExc) |
323 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EremoteioExc, ErrnoExc) |
324 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EinitExc, ErrnoExc) |
325 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EremdevExc, ErrnoExc) |
326 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EcanceledExc, ErrnoExc) |
327 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EnolimfileExc, ErrnoExc) |
328 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EproclimExc, ErrnoExc) |
329 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EdisjointExc, ErrnoExc) |
330 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EnologinExc, ErrnoExc) |
331 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EloginlimExc, ErrnoExc) |
332 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EgrouploopExc, ErrnoExc) |
333 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EnoattachExc, ErrnoExc) |
334 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EnotsupExc, ErrnoExc) |
335 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EnoattrExc, ErrnoExc) |
336 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EdircorruptedExc, ErrnoExc) |
337 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EdquotExc, ErrnoExc) |
338 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EnfsremoteExc, ErrnoExc) |
339 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EcontrollerExc, ErrnoExc) |
340 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EnotcontrollerExc, ErrnoExc) |
341 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EenqueuedExc, ErrnoExc) |
342 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EnotenqueuedExc, ErrnoExc) |
343 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EjoinedExc, ErrnoExc) |
344 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EnotjoinedExc, ErrnoExc) |
345 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EnoprocExc, ErrnoExc) |
346 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EmustrunExc, ErrnoExc) |
347 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EnotstoppedExc, ErrnoExc) |
348 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EclockcpuExc, ErrnoExc) |
349 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EinvalstateExc, ErrnoExc) |
350 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EnoexistExc, ErrnoExc) |
351 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EendofminorExc, ErrnoExc) |
352 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EbufsizeExc, ErrnoExc) |
353 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EemptyExc, ErrnoExc) |
354 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EnointrgroupExc, ErrnoExc) |
355 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EinvalmodeExc, ErrnoExc) |
356 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EcantextentExc, ErrnoExc) |
357 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EinvaltimeExc, ErrnoExc) |
358 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EdestroyedExc, ErrnoExc) |
359 | | |
360 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, OverflowExc, MathExc) |
361 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, UnderflowExc, MathExc) |
362 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, DivzeroExc, MathExc) |
363 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, InexactExc, MathExc) |
364 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, InvalidFpOpExc, MathExc) |
365 | | |
366 | | IEX_INTERNAL_NAMESPACE_SOURCE_EXIT |
367 | | |
368 | | |
369 | | #ifdef _WIN32 |
370 | | |
371 | | #pragma optimize("", off) |
372 | | void |
373 | | iex_debugTrap() |
374 | | { |
375 | | if (0 != getenv("IEXDEBUGTHROW")) |
376 | | ::DebugBreak(); |
377 | | } |
378 | | #else |
379 | | void |
380 | | iex_debugTrap() |
381 | 0 | { |
382 | | // how to in Linux? |
383 | 0 | if (0 != ::getenv("IEXDEBUGTHROW")) |
384 | 0 | __builtin_trap(); |
385 | 0 | } |
386 | | #endif |