[libcxx] r283339 - Make tests for is_empty better. No functional change.

Marshall Clow via cfe-commits cfe-commits at lists.llvm.org
Wed Oct 5 10:01:16 PDT 2016


Author: marshall
Date: Wed Oct  5 12:01:16 2016
New Revision: 283339

URL: http://llvm.org/viewvc/llvm-project?rev=283339&view=rev
Log:
Make tests for is_empty better. No functional change.

Modified:
    libcxx/trunk/test/std/utilities/meta/meta.unary/meta.unary.prop/is_empty.pass.cpp

Modified: libcxx/trunk/test/std/utilities/meta/meta.unary/meta.unary.prop/is_empty.pass.cpp
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/utilities/meta/meta.unary/meta.unary.prop/is_empty.pass.cpp?rev=283339&r1=283338&r2=283339&view=diff
==============================================================================
--- libcxx/trunk/test/std/utilities/meta/meta.unary/meta.unary.prop/is_empty.pass.cpp (original)
+++ libcxx/trunk/test/std/utilities/meta/meta.unary/meta.unary.prop/is_empty.pass.cpp Wed Oct  5 12:01:16 2016
@@ -11,6 +11,14 @@
 
 // is_empty
 
+// T is a non-union class type with:
+//  no non-static data members,
+//  no unnamed bit-fields of non-zero length,
+//  no virtual member functions,
+//  no virtual base classes,
+//  and no base class B for which is_empty_v<B> is false.
+
+
 #include <type_traits>
 #include "test_macros.h"
 
@@ -44,22 +52,33 @@ void test_is_not_empty()
 #endif
 }
 
-class Empty
-{
-};
+class Empty {};
+struct NotEmpty { int foo; };
 
-class NotEmpty
+class VirtualFn
 {
-    virtual ~NotEmpty();
+    virtual ~VirtualFn();
 };
 
 union Union {};
 
+struct EmptyBase    : public Empty {};
+struct VirtualBase  : virtual Empty {};
+struct NotEmptyBase : public NotEmpty {};
+
+struct StaticMember    { static int foo; };
+struct NonStaticMember {        int foo; };
+
 struct bit_zero
 {
     int :  0;
 };
 
+struct bit_one
+{
+    int :  1;
+};
+
 int main()
 {
     test_is_not_empty<void>();
@@ -72,7 +91,14 @@ int main()
     test_is_not_empty<char[]>();
     test_is_not_empty<Union>();
     test_is_not_empty<NotEmpty>();
+    test_is_not_empty<VirtualFn>();
+    test_is_not_empty<VirtualBase>();
+    test_is_not_empty<NotEmptyBase>();
+    test_is_not_empty<NonStaticMember>();
+    test_is_empty<bit_one>();
 
     test_is_empty<Empty>();
+    test_is_empty<EmptyBase>();
+    test_is_empty<StaticMember>();
     test_is_empty<bit_zero>();
 }




More information about the cfe-commits mailing list