summaryrefslogtreecommitdiffstats
path: root/llvm/test/CodeGen/WinEH/wineh-setjmp.ll
Commit message (Collapse)AuthorAgeFilesLines
* [WinEH] Make setjmp work correctly with EHDavid Majnemer2016-02-291-0/+75
32-bit X86 EH on Windows utilizes a stack of registration nodes allocated and deallocated on entry/exit. A registration node contains a bunch of EH personality specific information like which try-state we are currently in. Because a setjmp target allows control flow from arbitrary program points, there is no way to ensure that the try-state we are in is correctly updated once we transfer control. MSVC compatible compilers, like MSVC and ICC, utilize runtime helpers to reinitialize the try-state when a longjmp occurs. This is implemented by adding additional arguments to _setjmp3: the desired try-state and a helper routine to update the try-state. Differential Revision: http://reviews.llvm.org/D17721 llvm-svn: 262241
OpenPOWER on IntegriCloud