]> git.ipfire.org Git - thirdparty/elfutils.git/commitdiff
tests: Simplify backtrace-dwarf (gcc cleanup-13.c) testcase.
authorMark Wielaard <mjw@redhat.com>
Sat, 4 Jan 2014 13:24:58 +0000 (14:24 +0100)
committerMark Wielaard <mjw@redhat.com>
Sat, 4 Jan 2014 13:25:02 +0000 (14:25 +0100)
The testcase originally came from GCC which was testing the runtime
unwinder using _Unwind_ForcedUnwind. Since we are using our own external
unwinder we can just abort at the right place and unwind from there.

Signed-off-by: Mark Wielaard <mjw@redhat.com>
tests/ChangeLog
tests/cleanup-13.c

index c68ae26cd6898c874ee6ed3caaf8e4aa87e02b9d..63692e3df7adfbc058781bbdb8e3fce2615b9267 100644 (file)
@@ -1,3 +1,9 @@
+2014-01-04  Mark Wielaard  <mjw@redhat.com>
+
+       * cleanup-13.c (force_unwind_stop): Removed.
+       (force_unwind): Just call abort. Don't setup _Unwind_Exception and
+       don't call _Unwind_ForcedUnwind.
+
 2014-01-03  Mark Wielaard  <mjw@redhat.com>
 
        * run-addrcfi.sh: Add case for EM_AARCH64.
index b87c696529e8469220ce7e280647978d3de11409..3919b91a92e15bd33ca6e0c63085f1a773a85a5f 100644 (file)
@@ -283,30 +283,12 @@ extern char verify_it[sizeof (cfi_arch_program) - 0x80 < 0x3f80 ? 1 : -1];
                : : "i" (sizeof (cfi_arch_program)))
 #endif
 #endif
-static _Unwind_Reason_Code
-force_unwind_stop (int version, _Unwind_Action actions,
-                  _Unwind_Exception_Class exc_class,
-                  struct _Unwind_Exception *exc_obj,
-                  struct _Unwind_Context *context,
-                  void *stop_parameter)
-{
-  if (actions & _UA_END_OF_STACK)
-    abort ();
-  return _URC_NO_REASON;
-}
+
+/* The original GCC testcase tests the runtime unwinder using
+   _Unwind_ForcedUnwind, we just inspect the child when it aborts.  */
 
 static void force_unwind ()
 {
-  struct _Unwind_Exception *exc = malloc (sizeof (*exc));
-  memset (&exc->exception_class, 0, sizeof (exc->exception_class));
-  exc->exception_cleanup = 0;
-
-#ifndef __USING_SJLJ_EXCEPTIONS__
-  _Unwind_ForcedUnwind (exc, force_unwind_stop, 0);
-#else
-  _Unwind_SjLj_ForcedUnwind (exc, force_unwind_stop, 0);
-#endif
-
   abort ();
 }