]> granicus.if.org Git - clang/commit
[ObjC] Make C++ triviality type traits available to non-trivial C
authorAkira Hatanaka <ahatanaka@apple.com>
Wed, 28 Mar 2018 00:12:08 +0000 (00:12 +0000)
committerAkira Hatanaka <ahatanaka@apple.com>
Wed, 28 Mar 2018 00:12:08 +0000 (00:12 +0000)
commit7d573824c60fe0523e6a84526343d8065234ac5e
treeec9bd34e86861f5cfd80d90e6ba1e2a74a5cad76
parent27f08257689efde959f899144b3c1de187b68064
[ObjC] Make C++ triviality type traits available to non-trivial C
structs.

r326307 and r327870 made changes that allowed using non-trivial C
structs with fields qualified with __strong or __weak. This commit makes
the following C++ triviality type traits available to non-trivial C
structs:

__has_trivial_assign
__has_trivial_move_assign
__has_trivial_copy
__has_trivial_move_constructor
__has_trivial_constructor
__has_trivial_destructor

rdar://problem/33599681

Differential Revision: https://reviews.llvm.org/D44913

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@328680 91177308-0d34-0410-b5e6-96231b3b80d8
include/clang/Basic/TokenKinds.def
lib/Sema/SemaExprCXX.cpp
test/SemaObjC/non-trivial-struct-traits.m [new file with mode: 0644]