aboutsummaryrefslogtreecommitdiff
path: root/nptl/unwind.c
diff options
context:
space:
mode:
Diffstat (limited to 'nptl/unwind.c')
-rw-r--r--nptl/unwind.c8
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 */