summaryrefslogtreecommitdiffstats
path: root/lib/Format/WhitespaceManager.cpp
diff options
context:
space:
mode:
authorDavid Majnemer <david.majnemer@gmail.com>2015-01-29 09:29:21 +0000
committerDavid Majnemer <david.majnemer@gmail.com>2015-01-29 09:29:21 +0000
commit0aaadda8e18ef6cf8fd65fad649f5a21b4070c3c (patch)
tree6c440f0b6f08c26b77a750cf0eeb2f80ad198cdb /lib/Format/WhitespaceManager.cpp
parent346f5236b2f1b85c05b4e6ef15d460a564ef2fee (diff)
MS ABI: Implement proper support for setjmp
On targets which use the MSVCRT, setjmp is a macro which expands to _setjmp or _setjmpex. _setjmp and _setjmpex have a secret, hidden argument which is not listed in the function prototype on X64 and WoA. This hidden argument always seems to be the frame pointer. _setjmpex isn't used on X86, _setjmp is magically replaced with a call to _setjmp3. The second argument is zero for 'normal' setjmp/longjmp pairs, otherwise it is a count of additional variadic arguments. This is used when setjmp appears inside of a try or __try. It is not safe to use a pointer to setjmp because _setjmp, _setjmpex and _setmp3 are not compatible with setjmp. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@227426 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Format/WhitespaceManager.cpp')
0 files changed, 0 insertions, 0 deletions