/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 | | BaseExc::BaseExc (const BaseExc &be) throw() |
103 | | : _message (be._message), |
104 | | _stackTrace (be._stackTrace) |
105 | 0 | { |
106 | 0 | } |
107 | | |
108 | | BaseExc::~BaseExc () throw () |
109 | 0 | { |
110 | 0 | } |
111 | | |
112 | | BaseExc & |
113 | | BaseExc::operator = (const BaseExc& be) throw () |
114 | 0 | { |
115 | 0 | if (this != &be) |
116 | 0 | { |
117 | 0 | _message = be._message; |
118 | 0 | _stackTrace = be._stackTrace; |
119 | 0 | } |
120 | |
|
121 | 0 | return *this; |
122 | 0 | } |
123 | | |
124 | | BaseExc & |
125 | | BaseExc::operator = (BaseExc&& be) throw () |
126 | 0 | { |
127 | 0 | if (this != &be) |
128 | 0 | { |
129 | 0 | _message = std::move (be._message); |
130 | 0 | _stackTrace = std::move (be._stackTrace); |
131 | 0 | } |
132 | 0 | return *this; |
133 | 0 | } |
134 | | |
135 | | const char * |
136 | | BaseExc::what () const throw () |
137 | 0 | { |
138 | 0 | return _message.c_str(); |
139 | 0 | } |
140 | | |
141 | | |
142 | | BaseExc & |
143 | | BaseExc::assign (std::stringstream &s) |
144 | 0 | { |
145 | 0 | _message.assign (s.str()); |
146 | 0 | return *this; |
147 | 0 | } |
148 | | |
149 | | BaseExc & |
150 | | BaseExc::append (std::stringstream &s) |
151 | 0 | { |
152 | 0 | _message.append (s.str()); |
153 | 0 | return *this; |
154 | 0 | } |
155 | | |
156 | | const std::string & |
157 | | BaseExc::message() const |
158 | 0 | { |
159 | 0 | return _message; |
160 | 0 | } |
161 | | |
162 | | BaseExc & |
163 | | BaseExc::operator = (std::stringstream &s) |
164 | 0 | { |
165 | 0 | return assign (s); |
166 | 0 | } |
167 | | |
168 | | |
169 | | BaseExc & |
170 | | BaseExc::operator += (std::stringstream &s) |
171 | 0 | { |
172 | 0 | return append (s); |
173 | 0 | } |
174 | | |
175 | | |
176 | | BaseExc & |
177 | | BaseExc::assign (const char *s) |
178 | 0 | { |
179 | 0 | _message.assign(s); |
180 | 0 | return *this; |
181 | 0 | } |
182 | | |
183 | | |
184 | | BaseExc & |
185 | | BaseExc::operator = (const char *s) |
186 | 0 | { |
187 | 0 | return assign(s); |
188 | 0 | } |
189 | | |
190 | | |
191 | | BaseExc & |
192 | | BaseExc::append (const char *s) |
193 | 0 | { |
194 | 0 | _message.append(s); |
195 | 0 | return *this; |
196 | 0 | } |
197 | | |
198 | | |
199 | | BaseExc & |
200 | | BaseExc::operator += (const char *s) |
201 | 0 | { |
202 | 0 | return append(s); |
203 | 0 | } |
204 | | |
205 | | |
206 | | const std::string & |
207 | | BaseExc::stackTrace () const |
208 | 0 | { |
209 | 0 | return _stackTrace; |
210 | 0 | } |
211 | | |
212 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, ArgExc, BaseExc) |
213 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, LogicExc, BaseExc) |
214 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, InputExc, BaseExc) |
215 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, IoExc, BaseExc) |
216 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, MathExc, BaseExc) |
217 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, ErrnoExc, BaseExc) |
218 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, NoImplExc, BaseExc) |
219 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, NullExc, BaseExc) |
220 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, TypeExc, BaseExc) |
221 | | |
222 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EpermExc, ErrnoExc) |
223 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EnoentExc, ErrnoExc) |
224 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EsrchExc, ErrnoExc) |
225 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EintrExc, ErrnoExc) |
226 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EioExc, ErrnoExc) |
227 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EnxioExc, ErrnoExc) |
228 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, E2bigExc, ErrnoExc) |
229 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EnoexecExc, ErrnoExc) |
230 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EbadfExc, ErrnoExc) |
231 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EchildExc, ErrnoExc) |
232 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EagainExc, ErrnoExc) |
233 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EnomemExc, ErrnoExc) |
234 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EaccesExc, ErrnoExc) |
235 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EfaultExc, ErrnoExc) |
236 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EnotblkExc, ErrnoExc) |
237 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EbusyExc, ErrnoExc) |
238 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EexistExc, ErrnoExc) |
239 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, ExdevExc, ErrnoExc) |
240 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EnodevExc, ErrnoExc) |
241 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EnotdirExc, ErrnoExc) |
242 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EisdirExc, ErrnoExc) |
243 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EinvalExc, ErrnoExc) |
244 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EnfileExc, ErrnoExc) |
245 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EmfileExc, ErrnoExc) |
246 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EnottyExc, ErrnoExc) |
247 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EtxtbsyExc, ErrnoExc) |
248 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EfbigExc, ErrnoExc) |
249 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EnospcExc, ErrnoExc) |
250 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EspipeExc, ErrnoExc) |
251 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, ErofsExc, ErrnoExc) |
252 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EmlinkExc, ErrnoExc) |
253 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EpipeExc, ErrnoExc) |
254 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EdomExc, ErrnoExc) |
255 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, ErangeExc, ErrnoExc) |
256 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EnomsgExc, ErrnoExc) |
257 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EidrmExc, ErrnoExc) |
258 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EchrngExc, ErrnoExc) |
259 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, El2nsyncExc, ErrnoExc) |
260 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, El3hltExc, ErrnoExc) |
261 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, El3rstExc, ErrnoExc) |
262 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, ElnrngExc, ErrnoExc) |
263 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EunatchExc, ErrnoExc) |
264 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EnocsiExc, ErrnoExc) |
265 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, El2hltExc, ErrnoExc) |
266 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EdeadlkExc, ErrnoExc) |
267 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EnolckExc, ErrnoExc) |
268 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EbadeExc, ErrnoExc) |
269 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EbadrExc, ErrnoExc) |
270 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, ExfullExc, ErrnoExc) |
271 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EnoanoExc, ErrnoExc) |
272 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EbadrqcExc, ErrnoExc) |
273 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EbadsltExc, ErrnoExc) |
274 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EdeadlockExc, ErrnoExc) |
275 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EbfontExc, ErrnoExc) |
276 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EnostrExc, ErrnoExc) |
277 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EnodataExc, ErrnoExc) |
278 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EtimeExc, ErrnoExc) |
279 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EnosrExc, ErrnoExc) |
280 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EnonetExc, ErrnoExc) |
281 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EnopkgExc, ErrnoExc) |
282 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EremoteExc, ErrnoExc) |
283 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EnolinkExc, ErrnoExc) |
284 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EadvExc, ErrnoExc) |
285 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EsrmntExc, ErrnoExc) |
286 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EcommExc, ErrnoExc) |
287 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EprotoExc, ErrnoExc) |
288 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EmultihopExc, ErrnoExc) |
289 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EbadmsgExc, ErrnoExc) |
290 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EnametoolongExc, ErrnoExc) |
291 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EoverflowExc, ErrnoExc) |
292 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EnotuniqExc, ErrnoExc) |
293 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EbadfdExc, ErrnoExc) |
294 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EremchgExc, ErrnoExc) |
295 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, ElibaccExc, ErrnoExc) |
296 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, ElibbadExc, ErrnoExc) |
297 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, ElibscnExc, ErrnoExc) |
298 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, ElibmaxExc, ErrnoExc) |
299 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, ElibexecExc, ErrnoExc) |
300 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EilseqExc, ErrnoExc) |
301 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EnosysExc, ErrnoExc) |
302 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EloopExc, ErrnoExc) |
303 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, ErestartExc, ErrnoExc) |
304 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EstrpipeExc, ErrnoExc) |
305 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EnotemptyExc, ErrnoExc) |
306 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EusersExc, ErrnoExc) |
307 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EnotsockExc, ErrnoExc) |
308 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EdestaddrreqExc, ErrnoExc) |
309 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EmsgsizeExc, ErrnoExc) |
310 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EprototypeExc, ErrnoExc) |
311 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EnoprotooptExc, ErrnoExc) |
312 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EprotonosupportExc, ErrnoExc) |
313 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EsocktnosupportExc, ErrnoExc) |
314 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EopnotsuppExc, ErrnoExc) |
315 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EpfnosupportExc, ErrnoExc) |
316 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EafnosupportExc, ErrnoExc) |
317 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EaddrinuseExc, ErrnoExc) |
318 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EaddrnotavailExc, ErrnoExc) |
319 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EnetdownExc, ErrnoExc) |
320 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EnetunreachExc, ErrnoExc) |
321 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EnetresetExc, ErrnoExc) |
322 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EconnabortedExc, ErrnoExc) |
323 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EconnresetExc, ErrnoExc) |
324 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EnobufsExc, ErrnoExc) |
325 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EisconnExc, ErrnoExc) |
326 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EnotconnExc, ErrnoExc) |
327 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EshutdownExc, ErrnoExc) |
328 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EtoomanyrefsExc, ErrnoExc) |
329 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EtimedoutExc, ErrnoExc) |
330 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EconnrefusedExc, ErrnoExc) |
331 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EhostdownExc, ErrnoExc) |
332 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EhostunreachExc, ErrnoExc) |
333 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EalreadyExc, ErrnoExc) |
334 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EinprogressExc, ErrnoExc) |
335 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EstaleExc, ErrnoExc) |
336 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EioresidExc, ErrnoExc) |
337 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EucleanExc, ErrnoExc) |
338 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EnotnamExc, ErrnoExc) |
339 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EnavailExc, ErrnoExc) |
340 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EisnamExc, ErrnoExc) |
341 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EremoteioExc, ErrnoExc) |
342 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EinitExc, ErrnoExc) |
343 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EremdevExc, ErrnoExc) |
344 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EcanceledExc, ErrnoExc) |
345 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EnolimfileExc, ErrnoExc) |
346 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EproclimExc, ErrnoExc) |
347 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EdisjointExc, ErrnoExc) |
348 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EnologinExc, ErrnoExc) |
349 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EloginlimExc, ErrnoExc) |
350 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EgrouploopExc, ErrnoExc) |
351 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EnoattachExc, ErrnoExc) |
352 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EnotsupExc, ErrnoExc) |
353 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EnoattrExc, ErrnoExc) |
354 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EdircorruptedExc, ErrnoExc) |
355 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EdquotExc, ErrnoExc) |
356 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EnfsremoteExc, ErrnoExc) |
357 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EcontrollerExc, ErrnoExc) |
358 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EnotcontrollerExc, ErrnoExc) |
359 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EenqueuedExc, ErrnoExc) |
360 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EnotenqueuedExc, ErrnoExc) |
361 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EjoinedExc, ErrnoExc) |
362 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EnotjoinedExc, ErrnoExc) |
363 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EnoprocExc, ErrnoExc) |
364 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EmustrunExc, ErrnoExc) |
365 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EnotstoppedExc, ErrnoExc) |
366 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EclockcpuExc, ErrnoExc) |
367 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EinvalstateExc, ErrnoExc) |
368 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EnoexistExc, ErrnoExc) |
369 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EendofminorExc, ErrnoExc) |
370 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EbufsizeExc, ErrnoExc) |
371 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EemptyExc, ErrnoExc) |
372 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EnointrgroupExc, ErrnoExc) |
373 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EinvalmodeExc, ErrnoExc) |
374 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EcantextentExc, ErrnoExc) |
375 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EinvaltimeExc, ErrnoExc) |
376 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, EdestroyedExc, ErrnoExc) |
377 | | |
378 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, OverflowExc, MathExc) |
379 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, UnderflowExc, MathExc) |
380 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, DivzeroExc, MathExc) |
381 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, InexactExc, MathExc) |
382 | | DEFINE_EXC_EXP_IMPL (IEX_EXPORT, InvalidFpOpExc, MathExc) |
383 | | |
384 | | IEX_INTERNAL_NAMESPACE_SOURCE_EXIT |
385 | | |
386 | | |
387 | | #ifdef _WIN32 |
388 | | |
389 | | #pragma optimize("", off) |
390 | | void |
391 | | iex_debugTrap() |
392 | | { |
393 | | if (0 != getenv("IEXDEBUGTHROW")) |
394 | | ::DebugBreak(); |
395 | | } |
396 | | #else |
397 | | void |
398 | | iex_debugTrap() |
399 | 0 | { |
400 | | // how to in Linux? |
401 | 0 | if (0 != ::getenv("IEXDEBUGTHROW")) |
402 | 0 | __builtin_trap(); |
403 | 0 | } |
404 | | #endif |