[SEH] Fix wrong argument passes to the call of OutlinedFinally.
When return out of __try block. In this test case, currently "false" is passed to OutlinedFinally's call. "true" should be passed to indicate abnormal terminations. The rule: Except _leave and fall-through at the end, all other exits in a _try (return/goto/continue/break) are considered as abnormal terminations, NormalCleanupDestSlot is used to indicate abnormal terminations. The problem is, during the processing abnormal terminations, the ExitSwitch is used. However, in this case, Existswitch is route out. One way to fix is to skip route it without a switch. So proper abnormal termination's code could be generated. Differential Revision: https://reviews.llvm.org/D158233
Loading
Please sign in to comment