]>
Commit | Line | Data |
---|---|---|
1ea34b0f AM |
1 | 2005-02-18 Richard Henderson <rth@redhat.com> |
2 | ||
3 | PR libstdc++/10606 | |
4 | * config/linker-map.gnu (CXXABI_1.3.1): Add __cxa_get_exception_ptr. | |
5 | * libsupc++/eh_catch.cc (__cxa_get_exception_ptr): New. | |
6 | * libsupc++/unwind-cxx.h (__cxa_get_exception_ptr): Declare. | |
7 | ||
8 | --- libstdc++-v3/config/linker-map.gnu (revision 94498) | |
9 | +++ libstdc++-v3/config/linker-map.gnu (revision 95705) | |
10 | @@ -406,3 +410,9 @@ CXXABI_1.3 { | |
11 | local: | |
12 | *; | |
13 | }; | |
14 | + | |
15 | +CXXABI_1.3.1 { | |
16 | + | |
17 | + __cxa_get_exception_ptr; | |
18 | + | |
19 | +} CXXABI_1.3; | |
20 | --- libstdc++-v3/libsupc++/unwind-cxx.h (revision 94498) | |
21 | +++ libstdc++-v3/libsupc++/unwind-cxx.h (revision 95705) | |
22 | @@ -107,6 +107,7 @@ extern "C" void __cxa_throw (void *throw | |
23 | __attribute__((noreturn)); | |
24 | ||
25 | // Used to implement exception handlers. | |
26 | +extern "C" void *__cxa_get_exception_ptr (void *) throw(); | |
27 | extern "C" void *__cxa_begin_catch (void *) throw(); | |
28 | extern "C" void __cxa_end_catch (); | |
29 | extern "C" void __cxa_rethrow () __attribute__((noreturn)); | |
30 | --- libstdc++-v3/libsupc++/eh_catch.cc (revision 94498) | |
31 | +++ libstdc++-v3/libsupc++/eh_catch.cc (revision 95705) | |
32 | @@ -33,6 +33,15 @@ | |
33 | ||
34 | using namespace __cxxabiv1; | |
35 | ||
36 | +extern "C" void * | |
37 | +__cxxabiv1::__cxa_get_exception_ptr(void *exc_obj_in) throw() | |
38 | +{ | |
39 | + _Unwind_Exception *exceptionObject | |
40 | + = reinterpret_cast <_Unwind_Exception *>(exc_obj_in); | |
41 | + __cxa_exception *header = __get_exception_header_from_ue (exceptionObject); | |
42 | + | |
43 | + return header->adjustedPtr; | |
44 | +} | |
45 | ||
46 | extern "C" void * | |
47 | __cxxabiv1::__cxa_begin_catch (void *exc_obj_in) throw() |