In three cases we call scan_eh_tab to parse LSDA:
- actions & _UA_SEARCH_PHASE
- actions & _UA_CLEANUP_PHASE && actions & _UA_HANDLER_FRAME && !native_exception
- actions & _UA_CLEANUP_PHASE && !(actions & _UA_HANDLER_FRAME)
Check `actions & _UA_CLEANUP_PHASE && actions & _UA_HANDLER_FRAME &&
native_exception` first, then we can move three scan_eh_tab onto one place.
Another simplification is that we can check whether the result of scan_eh_tab
is _UA_CONTINUE_UNWIND or _UA_FATAL_PHASE1_ERROR first. Then many of the
original checks will be dead and can thus be deleted.
I don't think it hurts readability to leave it as __cxa_exception* exception_header, despite the cast.