diff options
author | Ulrich Drepper <drepper@redhat.com> | 2003-05-09 03:00:52 +0000 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 2003-05-09 03:00:52 +0000 |
commit | 29b095a1561f866b995b23621d1e2ee78e473dc4 (patch) | |
tree | c8f799914d7e2ecb442341f1c3e0e49cf16bbd81 /nptl/unwind.c | |
parent | 7618d44c9a97b7af563e4ac83e8cb3e46d4cdfb3 (diff) | |
download | glibc-29b095a1561f866b995b23621d1e2ee78e473dc4.zip glibc-29b095a1561f866b995b23621d1e2ee78e473dc4.tar.gz glibc-29b095a1561f866b995b23621d1e2ee78e473dc4.tar.bz2 |
(unwind_cleanup): Print error message and then abort. This function must never be reached.
Diffstat (limited to 'nptl/unwind.c')
-rw-r--r-- | nptl/unwind.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/nptl/unwind.c b/nptl/unwind.c index 7529174..f6537ba 100644 --- a/nptl/unwind.c +++ b/nptl/unwind.c @@ -50,7 +50,13 @@ unwind_stop (int version, _Unwind_Action actions, static void unwind_cleanup (_Unwind_Reason_Code reason, struct _Unwind_Exception *exc) { - /* Nothing to do. */ + /* When we get here a C++ catch block didn't rethrow the object. We + cannot handle this case and therefore abort. */ +# define STR_N_LEN(str) str, strlen (str) + INTERNAL_SYSCALL_DECL (err); + INTERNAL_SYSCALL (write, err, 3, STDERR_FILENO, + STR_N_LEN ("FATAL: exception not rethrown\n")); + abort (); } #endif /* have forced unwind */ |