diff options
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 7529174d5a..f6537ba69b 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 */ |