Fix __has_unique_object_representations implementation
authorErich Keane <erich.keane@intel.com>
Thu, 30 Nov 2017 16:37:02 +0000 (16:37 +0000)
committerErich Keane <erich.keane@intel.com>
Thu, 30 Nov 2017 16:37:02 +0000 (16:37 +0000)
commit8a6b7409959f3f6e6d19ac48453c8e9f4a51d829
treeb9c9140b22818277b9f318be7fc2754749d9bad7
parentc71cced0aae46ab4f27e2ea755819f308661670b
Fix __has_unique_object_representations implementation

As rsmith pointed out, the original implementation of this intrinsic
missed a number of important situations.  This patch fixe a bunch of
shortcomings and implementation details to make it work correctly.

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

llvm-svn: 319446
clang/include/clang/AST/ASTContext.h
clang/include/clang/AST/Type.h
clang/lib/AST/ASTContext.cpp
clang/lib/AST/CXXABI.h
clang/lib/AST/ItaniumCXXABI.cpp
clang/lib/AST/MicrosoftCXXABI.cpp
clang/lib/AST/Type.cpp
clang/lib/Sema/SemaExprCXX.cpp
clang/test/SemaCXX/has_unique_object_reps_member_ptr.cpp [new file with mode: 0644]
clang/test/SemaCXX/type-traits.cpp