llvm-project/clang/lib/Parse
Denis Zobnin 2290dacaf8 Recommit "[MS] Improved implementation of stack pragmas (vtordisp, *_seg)"
Slightly updated version, double-checked build and tests.
Improve implementation of MS pragmas that use stack + compatibility fixes.
This patch:
  1. Changes implementation of #pragma vtordisp to use PragmaStack class
     that other stack pragmas use;
  2. Fixes "#pragma vtordisp()" behavior - it shouldn't affect the stack;
  3. Supports "save-restore" of pragma stacks on enter / exit a C++ method
     body, as MSVC does.

TODO:
  1. Change implementation of #pragma pack to use the same approach;
  2. Introduce diagnostics on popping named stack slots, as MSVC does.

Reviewers:
  rnk, thakis

Differential revision: http://reviews.llvm.org/D19361

llvm-svn: 268029
2016-04-29 11:27:00 +00:00
..
CMakeLists.txt [CMake] Reorder libdeps by alphabetical order. 2014-07-14 04:59:27 +00:00
ParseAST.cpp Restore PrettyStackTrace state on crash. 2015-08-07 17:48:57 +00:00
ParseCXXInlineMethods.cpp For MS ABI, emit dllexport friend functions defined inline in class 2016-03-30 06:27:31 +00:00
ParseDecl.cpp Correctly parse GCC-style asm line following MS-style asm line. 2016-04-21 10:59:18 +00:00
ParseDeclCXX.cpp Remove redundant null-check; NFC 2016-04-13 18:41:03 +00:00
ParseExpr.cpp Revert 266186 as it breaks anything that includes type_traits on some platforms 2016-04-15 18:04:13 +00:00
ParseExprCXX.cpp Revert 266186 as it breaks anything that includes type_traits on some platforms 2016-04-15 18:04:13 +00:00
ParseInit.cpp OpaquePtr: Use nullptr construction for ParsedType OpaquePtr typedef 2016-01-15 23:43:34 +00:00
ParseObjc.cpp [Parser][ObjC] Make sure c++11 in-class initialization is done when the 2016-04-18 18:19:45 +00:00
ParseOpenMP.cpp [OPENMP 4.0] Support for 'linear' clause in 'declare simd' directive. 2016-04-12 11:02:11 +00:00
ParsePragma.cpp Recommit "[MS] Improved implementation of stack pragmas (vtordisp, *_seg)" 2016-04-29 11:27:00 +00:00
ParseStmt.cpp Recommit "[MS] Improved implementation of stack pragmas (vtordisp, *_seg)" 2016-04-29 11:27:00 +00:00
ParseStmtAsm.cpp Correctly parse GCC-style asm line following MS-style asm line. 2016-04-21 10:59:18 +00:00
ParseTemplate.cpp [Parser] Clear the TemplateParamScope bit of the current scope's flag 2016-04-29 02:24:14 +00:00
ParseTentative.cpp Revert 266186 as it breaks anything that includes type_traits on some platforms 2016-04-15 18:04:13 +00:00
Parser.cpp [OPENMP 4.0] Initial support for '#pragma omp declare simd' directive. 2016-03-30 10:43:55 +00:00
RAIIObjectsForParser.h Add a new error for unexpected semi-colon before closing delimiter. 2015-05-12 21:36:35 +00:00