Displaying 6 results from an estimated 6 matches for "_unwind_forcedunwind".
2011 Sep 27
1
[LLVMdev] How to code catch-all in the new exception handling scheme?
Hi Duncan,
On Sep 27, 2011, at 7:58, Duncan Sands wrote:
> Hi Bill,
>
>>>> I'm looking at the docs, and while it refers to a "catch-all" clause,
>>>
>>> hopefully Bill will get rid of the first reference to "catch-all" since
>>> that section is inaccurate.
>>>
>> I *think* this is now correct. Please check. :)
2011 Sep 28
0
[LLVMdev] How to code catch-all in the new exception handling scheme?
...a cleanup is not considered to be a handler.
If the C++ unwinder sees the call to _Unwind_RaiseException return like this
then it terminates the program. Cleanups will therefore not have been run.
The Ada unwinder behaves differently. If it the call to _Unwind_RaiseException
returns then it calls _Unwind_ForcedUnwind which runs all the cleanups. The
program is then terminated. In the more common situation of the unwinder seeing
a handler somewhere up the stack it doesn't return and moves on to phase 2 as
you described; but your description doesn't apply to the case in which there are
only cleanups....
2011 Sep 27
3
[LLVMdev] How to code catch-all in the new exception handling scheme?
On Sep 27, 2011, at 4:58 AM, Duncan Sands wrote:
> Hi Bill,
>
>>>> I'm looking at the docs, and while it refers to a "catch-all" clause,
>>>
>>> hopefully Bill will get rid of the first reference to "catch-all" since
>>> that section is inaccurate.
>>>
>> I *think* this is now correct. Please check. :)
>
2011 Sep 25
0
[LLVMdev] How to code catch-all in the new exception handling scheme?
...n,
if the search phase discovers that nothing matches the exception except for
cleanups all the way up the stack, then the call to _Unwind_RaiseException
returns (otherwise control branches to the landing pad that matched the
exception). If you want cleanups to be run anyway, then you need to call
_Unwind_ForcedUnwind if _Unwind_RaiseException returns. This is in contrast
to what happens if there is a catch-all: the call to _Unwind_RaiseException
will see that the exception matches the catch-all (because the personality
function says so) and it will cause execution to resume at the corresponding
landing pad....
2011 Sep 24
2
[LLVMdev] How to code catch-all in the new exception handling scheme?
I'm looking at the docs, and while it refers to a "catch-all" clause, it
doesn't describe how to construct one. In the old scheme, a selector value
of 0 was used. What's the corresponding technique for the new scheme? Do I
need to update my personality function to handle catch-alls (it wasn't
needed in the previous scheme)?
--
-- Talin
-------------- next part
2020 Aug 15
5
Supporting libunwind on Windows 10 (32bit; 64bit) for MSVC and Clang
...nwind_Resume(_Unwind_Exception *exception_object) {
^
C:/Users/clang/libunwind/include\unwind.h:175:13: note: previous
declaration is here
extern void _Unwind_Resume(_Unwind_Exception *exception_object);
^
C:/Users/clang/libunwind/src/UnwindLevel1.c:408:1: warning: redeclaration
of '_Unwind_ForcedUnwind' should not add 'dllexport' attribute
[-Wdll-attribute-on-redeclaration]
_Unwind_ForcedUnwind(_Unwind_Exception *exception_object,
^
C:/Users/clang/libunwind/include\unwind.h:277:5: note: previous declaration
is here
_Unwind_ForcedUnwind(_Unwind_Exception *exception_object,
^
C:...