MS ABI: Insert copy-constructors into the CatchableType
authorDavid Majnemer <david.majnemer@gmail.com>
Fri, 6 Mar 2015 18:53:55 +0000 (18:53 +0000)
committerDavid Majnemer <david.majnemer@gmail.com>
Fri, 6 Mar 2015 18:53:55 +0000 (18:53 +0000)
commite7a818fec88726844e8acbfeb43da94dea81f4ca
treea318bfea08dc92c45a33ddbe7d52cf1a0225f83a
parenteafe55200c2cc996f24c27e2d26aa3bef897ff04
MS ABI: Insert copy-constructors into the CatchableType

Find all unambiguous public classes of the exception object's class type
and reference all of their copy constructors.  Yes, this is not
conforming but it is necessary in order to implement their ABI.  This is
because the copy constructor is actually referenced by the metadata
describing which catch handlers are eligible to handle the exception
object.

N.B.  This doesn't yet handle the copy constructor closure case yet,
that work is ongoing.

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

llvm-svn: 231499
clang/include/clang/AST/ASTContext.h
clang/include/clang/AST/Mangle.h
clang/lib/AST/ASTContext.cpp
clang/lib/AST/CXXABI.h
clang/lib/AST/ItaniumCXXABI.cpp
clang/lib/AST/MicrosoftCXXABI.cpp
clang/lib/AST/MicrosoftMangle.cpp
clang/lib/CodeGen/MicrosoftCXXABI.cpp
clang/lib/Sema/SemaExprCXX.cpp
clang/test/CodeGenCXX/microsoft-abi-throw.cpp