diff options
-rw-r--r-- | lib/AST/ASTContext.cpp | 2 | ||||
-rw-r--r-- | test/SemaCXX/type-traits.cpp | 1 |
2 files changed, 2 insertions, 1 deletions
diff --git a/lib/AST/ASTContext.cpp b/lib/AST/ASTContext.cpp index 3dc961d4f1..c73ae9efe1 100644 --- a/lib/AST/ASTContext.cpp +++ b/lib/AST/ASTContext.cpp @@ -2145,7 +2145,7 @@ static bool unionHasUniqueObjectRepresentations(const ASTContext &Context, if (FieldSize != UnionSize) return false; } - return true; + return !RD->field_empty(); } static bool isStructEmpty(QualType Ty) { diff --git a/test/SemaCXX/type-traits.cpp b/test/SemaCXX/type-traits.cpp index b334e50755..3c2f9c7f0f 100644 --- a/test/SemaCXX/type-traits.cpp +++ b/test/SemaCXX/type-traits.cpp @@ -2524,6 +2524,7 @@ static_assert(!has_unique_object_representations<const int &>::value, "No refere static_assert(!has_unique_object_representations<volatile int &>::value, "No references!"); static_assert(!has_unique_object_representations<const volatile int &>::value, "No references!"); static_assert(!has_unique_object_representations<Empty>::value, "No empty types!"); +static_assert(!has_unique_object_representations<EmptyUnion>::value, "No empty types!"); class Compressed : Empty { int x; |