forked from OSchip/llvm-project
090510608d
non-trivial C union types This recommits r365985, which was reverted because it broke a few projects using unions containing non-trivial ObjC pointer fields in system headers. We now have a patch to fix the problem (see https://reviews.llvm.org/D65256). Original commit message: This patch diagnoses uses of non-trivial C unions and structs/unions containing non-trivial C unions in the following contexts, which require default-initialization, destruction, or copying of the union objects, instead of disallowing fields of non-trivial types in C unions, which is what we currently do: - function parameters. - function returns. - assignments. - compound literals. - block captures except capturing of `__block` variables by non-escaping blocks. - local and global variable definitions. - lvalue-to-rvalue conversions of volatile types. See the discussion in https://reviews.llvm.org/D62988 for more background. rdar://problem/50679094 Differential Revision: https://reviews.llvm.org/D63753 llvm-svn: 371275 |
||
---|---|---|
.. | ||
ASTCommon.cpp | ||
ASTCommon.h | ||
ASTReader.cpp | ||
ASTReaderDecl.cpp | ||
ASTReaderInternals.h | ||
ASTReaderStmt.cpp | ||
ASTWriter.cpp | ||
ASTWriterDecl.cpp | ||
ASTWriterStmt.cpp | ||
CMakeLists.txt | ||
GeneratePCH.cpp | ||
GlobalModuleIndex.cpp | ||
InMemoryModuleCache.cpp | ||
Module.cpp | ||
ModuleFileExtension.cpp | ||
ModuleManager.cpp | ||
MultiOnDiskHashTable.h | ||
PCHContainerOperations.cpp |