diff options
| author | Luqman Aden <laden@csclub.uwaterloo.ca> | 2013-11-20 01:30:51 -0500 |
|---|---|---|
| committer | Luqman Aden <laden@csclub.uwaterloo.ca> | 2013-11-22 20:39:58 -0500 |
| commit | 6820ed4dcfe90136fb49e88fc44b0326035ac4c8 (patch) | |
| tree | 7ee0f76dedf75e82cfc80ff87ef4abd69f75e6fe /src/rt | |
| parent | cd9069ca734fe89fe446c16dc821e54b973506f5 (diff) | |
| download | rust-6820ed4dcfe90136fb49e88fc44b0326035ac4c8.tar.gz rust-6820ed4dcfe90136fb49e88fc44b0326035ac4c8.zip | |
Fix up mingw64 target.
Diffstat (limited to 'src/rt')
| -rw-r--r-- | src/rt/rust_upcall.c | 24 | ||||
| -rw-r--r-- | src/rt/rustrt.def.in | 1 |
2 files changed, 18 insertions, 7 deletions
diff --git a/src/rt/rust_upcall.c b/src/rt/rust_upcall.c index 16621d29d4a..bda0898ca5c 100644 --- a/src/rt/rust_upcall.c +++ b/src/rt/rust_upcall.c @@ -25,14 +25,24 @@ typedef int _Unwind_Action; struct _Unwind_Context; struct _Unwind_Exception; -#ifdef __SEH__ -# define PERSONALITY_FUNC __gxx_personality_seh0 +#if __USING_SJLJ_EXCEPTIONS__ +# define PERSONALITY_FUNC __gxx_personality_sj0 #else -# ifdef __USING_SJLJ_EXCEPTIONS__ -# define PERSONALITY_FUNC __gxx_personality_sjlj -# else -# define PERSONALITY_FUNC __gxx_personality_v0 -# endif +# ifdef __SEH__ +# define PERSONALITY_FUNC __gxx_personality_seh0 +# else +# define PERSONALITY_FUNC __gxx_personality_v0 +# endif +#endif + +#if __USING_SJLJ_EXCEPTIONS__ +void _Unwind_SjLj_Resume(struct _Unwind_Exception* exception_object); + +void _Unwind_Resume(struct _Unwind_Exception* exception_object) { + _Unwind_SjLj_Resume(exception_object); +} +#else +extern void _Unnwind_Resume(struct _Unwind_Exception* exception_object); #endif _Unwind_Reason_Code diff --git a/src/rt/rustrt.def.in b/src/rt/rustrt.def.in index 2a3e687ee55..53ce2067421 100644 --- a/src/rt/rustrt.def.in +++ b/src/rt/rustrt.def.in @@ -49,3 +49,4 @@ rust_get_test_int rust_pthread_mutex_t_size rust_pthread_cond_t_size rust_crit_section_size +_Unwind_Resume |
