diff options
author | drow <drow@138bc75d-0d04-0410-961f-82ee72b054a4> | 2005-11-16 17:08:05 +0000 |
---|---|---|
committer | drow <drow@138bc75d-0d04-0410-961f-82ee72b054a4> | 2005-11-16 17:08:05 +0000 |
commit | 363d487eb26583d7e66b35d055543cf7e3348dd9 (patch) | |
tree | 099343db634a03965f65fd2dcff754e631fadd4b /gcc/testsuite/gcc.dg | |
parent | d9af160209229462a87fd5ade82b352665c77aa0 (diff) | |
download | gcc-363d487eb26583d7e66b35d055543cf7e3348dd9.tar.gz |
gcc/
* config/arm/unwind-arm.c (abort): Add prototype here.
(UCB_FORCED_STOP_ARG): Correct typo in macro argument.
(struct phase1_vrs): Add prev_sp.
(unwind_phase2_forced): Save the original core registers instead of
modifying entry_vrs. Take a new flag argument for resuming unwinding
and set action flags accordingly. Always set _US_END_OF_STACK when
get_eit_entry fails. Unwind before calling the stop function.
(_Unwind_GetCFA): New function.
(__gnu_Unwind_ForcedUnwind): Update call to unwind_phase2_forced.
(__gnu_Unwind_Resume_or_Rethrow): Likewise.
(__gnu_Unwind_Resume): Do not unwind here for forced unwinding;
just call unwind_phase2_forced.
(_Unwind_GetDataRelBase, _Unwind_GetTextRelBase): Move to here.
* config/arm/unwind-arm.h (abort): Remove prototype.
(_Unwind_GetDataRelBase, _Unwind_GetTextRelBase): Change to
prototypes.
(_Unwind_GetCFA): New prototype.
* config/arm/pr-support.c (abort): Add prototype here.
* unwind-c.c (PERSONALITY_FUNCTION) [__ARM_EABI_UNWINDER__]: Handle
forced unwinding.
* config/arm/arm.c (arm_expand_prologue, thumb_expand_prologue): Do
not schedule the prologue with non-call exceptions and EABI.
gcc/testsuite/
* gcc.dg/cleanup-5.c, gcc.dg/cleanup-8.c, gcc.dg/cleanup-9.c,
gcc.dg/cleanup-10.c, gcc.dg/cleanup-11.c: Update for ARM EABI.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@107091 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/testsuite/gcc.dg')
-rw-r--r-- | gcc/testsuite/gcc.dg/cleanup-10.c | 3 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/cleanup-11.c | 3 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/cleanup-5.c | 3 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/cleanup-8.c | 3 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/cleanup-9.c | 3 |
5 files changed, 10 insertions, 5 deletions
diff --git a/gcc/testsuite/gcc.dg/cleanup-10.c b/gcc/testsuite/gcc.dg/cleanup-10.c index 35936eabb53..e8ae3bca78e 100644 --- a/gcc/testsuite/gcc.dg/cleanup-10.c +++ b/gcc/testsuite/gcc.dg/cleanup-10.c @@ -7,6 +7,7 @@ #include <stdlib.h> #include <signal.h> #include <unistd.h> +#include <string.h> static _Unwind_Reason_Code force_unwind_stop (int version, _Unwind_Action actions, @@ -23,7 +24,7 @@ force_unwind_stop (int version, _Unwind_Action actions, static void force_unwind () { struct _Unwind_Exception *exc = malloc (sizeof (*exc)); - exc->exception_class = 0; + memset (&exc->exception_class, 0, sizeof (exc->exception_class)); exc->exception_cleanup = 0; #ifndef __USING_SJLJ_EXCEPTIONS__ diff --git a/gcc/testsuite/gcc.dg/cleanup-11.c b/gcc/testsuite/gcc.dg/cleanup-11.c index 447b3986222..ff315f73d7a 100644 --- a/gcc/testsuite/gcc.dg/cleanup-11.c +++ b/gcc/testsuite/gcc.dg/cleanup-11.c @@ -7,6 +7,7 @@ #include <stdlib.h> #include <signal.h> #include <unistd.h> +#include <string.h> static _Unwind_Reason_Code force_unwind_stop (int version, _Unwind_Action actions, @@ -23,7 +24,7 @@ force_unwind_stop (int version, _Unwind_Action actions, static void force_unwind () { struct _Unwind_Exception *exc = malloc (sizeof (*exc)); - exc->exception_class = 0; + memset (&exc->exception_class, 0, sizeof (exc->exception_class)); exc->exception_cleanup = 0; #ifndef __USING_SJLJ_EXCEPTIONS__ diff --git a/gcc/testsuite/gcc.dg/cleanup-5.c b/gcc/testsuite/gcc.dg/cleanup-5.c index 497ab0be90f..c335c1e4492 100644 --- a/gcc/testsuite/gcc.dg/cleanup-5.c +++ b/gcc/testsuite/gcc.dg/cleanup-5.c @@ -6,6 +6,7 @@ #include <unwind.h> #include <stdlib.h> +#include <string.h> static _Unwind_Reason_Code force_unwind_stop (int version, _Unwind_Action actions, @@ -22,7 +23,7 @@ force_unwind_stop (int version, _Unwind_Action actions, static void force_unwind () { struct _Unwind_Exception *exc = malloc (sizeof (*exc)); - exc->exception_class = 0; + memset (&exc->exception_class, 0, sizeof (exc->exception_class)); exc->exception_cleanup = 0; #ifndef __USING_SJLJ_EXCEPTIONS__ diff --git a/gcc/testsuite/gcc.dg/cleanup-8.c b/gcc/testsuite/gcc.dg/cleanup-8.c index 25bc305adc1..321e1f029df 100644 --- a/gcc/testsuite/gcc.dg/cleanup-8.c +++ b/gcc/testsuite/gcc.dg/cleanup-8.c @@ -6,6 +6,7 @@ #include <unwind.h> #include <stdlib.h> #include <signal.h> +#include <string.h> static _Unwind_Reason_Code force_unwind_stop (int version, _Unwind_Action actions, @@ -22,7 +23,7 @@ force_unwind_stop (int version, _Unwind_Action actions, static void force_unwind () { struct _Unwind_Exception *exc = malloc (sizeof (*exc)); - exc->exception_class = 0; + memset (&exc->exception_class, 0, sizeof (exc->exception_class)); exc->exception_cleanup = 0; #ifndef __USING_SJLJ_EXCEPTIONS__ diff --git a/gcc/testsuite/gcc.dg/cleanup-9.c b/gcc/testsuite/gcc.dg/cleanup-9.c index 4cf4a413fa4..c3ac5fb726b 100644 --- a/gcc/testsuite/gcc.dg/cleanup-9.c +++ b/gcc/testsuite/gcc.dg/cleanup-9.c @@ -6,6 +6,7 @@ #include <unwind.h> #include <stdlib.h> #include <signal.h> +#include <string.h> static _Unwind_Reason_Code force_unwind_stop (int version, _Unwind_Action actions, @@ -22,7 +23,7 @@ force_unwind_stop (int version, _Unwind_Action actions, static void force_unwind () { struct _Unwind_Exception *exc = malloc (sizeof (*exc)); - exc->exception_class = 0; + memset (&exc->exception_class, 0, sizeof (exc->exception_class)); exc->exception_cleanup = 0; #ifndef __USING_SJLJ_EXCEPTIONS__ |