llvm-project/clang/lib
David Majnemer 37fd66e78b MS ABI: Generate default constructor closures
The MS ABI utilizes a compiler generated function called the "vector
constructor iterator" to construct arrays of objects with
non-trivial constructors/destructors.  For this to work, the constructor
must follow a specific calling convention.  A thunk must be created if
the default constructor has default arguments, is variadic or is
otherwise incompatible.  This thunk is called the default constructor
closure.

N.B.  Default constructor closures are only generated if the default
constructor is exported because clang itself does not utilize vector
constructor iterators.  Failing to export the default constructor
closure will result in link/load failure if a translation unit compiled
with MSVC is on the import side.

Differential Revision: http://reviews.llvm.org/D8331

llvm-svn: 232229
2015-03-13 22:36:55 +00:00
..
ARCMigrate [SDK modernizer] Patch to fix type of the typed enums when 2015-03-02 23:58:02 +00:00
AST MS ABI: Generate default constructor closures 2015-03-13 22:36:55 +00:00
ASTMatchers ASTMatchers: Add an explicit dependency on libclangBasic. 2015-03-12 16:25:19 +00:00
Analysis Make helper functions static 2015-03-09 15:03:32 +00:00
Basic Under duress, move check for target support of __builtin_setjmp/ 2015-03-11 23:46:32 +00:00
CodeGen MS ABI: Generate default constructor closures 2015-03-13 22:36:55 +00:00
Driver Fix grammar in a comment, wrap to 80 columns. No behavior change. 2015-03-12 19:37:10 +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: Don't corrupt macros with open braces. 2015-03-13 13:32:11 +00:00
Frontend Fix up default header paths for CloudABI. 2015-03-11 08:46:01 +00:00
FrontendTool Provide a BuryPointer for unique_ptrs. 2014-08-29 16:53:14 +00:00
Headers [X86, AVX2] Replace inserti128 and extracti128 intrinsics with generic shuffles 2015-03-12 21:54:24 +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 When building a module, all headers of submodules can be used. 2015-03-13 14:29:39 +00:00
Parse Sema: Don't emit a missing prototype warning for deleted functions. 2015-03-12 14:28:47 +00:00
Rewrite [Rewrite] Make RewriteBuffer accessible on its own, and add a unit test for it. 2015-03-08 04:00:33 +00:00
Sema MS ABI: Generate default constructor closures 2015-03-13 22:36:55 +00:00
Serialization [OPENMP] Additional sema analysis for 'omp atomic[ update]'. 2015-03-13 12:27:31 +00:00
StaticAnalyzer Enable security checks for arc4random() on CloudABI as well. 2015-03-11 08:48:55 +00:00
Tooling Tooling: Hide implementation details 2015-03-09 15:03:26 +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