llvm-project/clang/lib
David Majnemer 310e3a8f60 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.

llvm-svn: 227426
2015-01-29 09:29:21 +00:00
..
ARCMigrate Fix layering violation: include/clang/Basic/PlistSupport.h should not include 2015-01-28 20:14:54 +00:00
AST PR22367: Don't forget to create a CXXFunctionalCastExpr around 2015-01-28 22:06:01 +00:00
ASTMatchers Add voidType() matcher. 2014-12-15 15:09:22 +00:00
Analysis [cleanup] Re-sort *all* #include lines with llvm/utils/sort_includes.py 2015-01-14 11:29:14 +00:00
Basic Remove support for pnaclcall attribute 2015-01-28 20:24:52 +00:00
CodeGen MS ABI: Implement proper support for setjmp 2015-01-29 09:29:21 +00:00
Driver Ensure that -fsyntax-only with fortran 90 passes along silently 2015-01-29 00:56:17 +00:00
Edit Edit: Do not extend a removal to include trailing whitespace if we're at the end 2014-09-15 11:47:10 +00:00
Format clang-format: Fix another crasher caused by incomplete macro code. 2015-01-23 19:37:25 +00:00
Frontend Process the -fno-signed-zeros optimization flag (PR20870) 2015-01-23 16:40:50 +00:00
FrontendTool Provide a BuryPointer for unique_ptrs. 2014-08-29 16:53:14 +00:00
Headers Don't use BCPL comments here, in case someone wants to use <stdatomic.h> from C89 mode. 2015-01-29 03:34:39 +00:00
Index [libclang] Use same USR encoding for 'char' regardless of what the target considers the sign to be. 2014-12-08 09:09:05 +00:00
Lex Inherit attributes when infering a framework module 2015-01-13 17:47:44 +00:00
Parse Enable pragma comment processing for PS4. Original patch by Yunzhong Gao! 2015-01-28 18:26:15 +00:00
Rewrite Trim some includes. NFC. 2014-10-29 22:13:46 +00:00
Sema Sema: Turn some applicable functions static. NBC. 2015-01-29 05:54:59 +00:00
Serialization [modules] Sometimes we can deserialize a class member but not have yet 2015-01-24 01:07:20 +00:00
StaticAnalyzer Fix layering violation: include/clang/Basic/PlistSupport.h should not include 2015-01-28 20:14:54 +00:00
Tooling Adopt new cl::HideUnrelatedOptions API added r226729. 2015-01-21 23:26:11 +00:00
CMakeLists.txt Fix build with various feature flag combinations 2014-07-14 22:17:22 +00:00
Makefile Make clang's rewrite engine a core feature 2014-07-16 16:48:33 +00:00