summaryrefslogtreecommitdiffstats
path: root/libcxx/test/std/utilities/meta
diff options
context:
space:
mode:
authorMarshall Clow <mclow.lists@gmail.com>2019-05-16 15:56:26 +0000
committerMarshall Clow <mclow.lists@gmail.com>2019-05-16 15:56:26 +0000
commit402ca78c436bcd1973136a23c7dfa85f1e1c584f (patch)
tree51da9cd1defc52b05846d6cdd43797d3d1534d79 /libcxx/test/std/utilities/meta
parentdaa91492dd93f76fd3212bfe338f3fe41c30d26e (diff)
downloadbcm5719-llvm-402ca78c436bcd1973136a23c7dfa85f1e1c584f.tar.gz
bcm5719-llvm-402ca78c436bcd1973136a23c7dfa85f1e1c584f.zip
Improve the test coverage for std::is_base_of
llvm-svn: 360911
Diffstat (limited to 'libcxx/test/std/utilities/meta')
-rw-r--r--libcxx/test/std/utilities/meta/meta.rel/is_base_of.pass.cpp15
1 files changed, 15 insertions, 0 deletions
diff --git a/libcxx/test/std/utilities/meta/meta.rel/is_base_of.pass.cpp b/libcxx/test/std/utilities/meta/meta.rel/is_base_of.pass.cpp
index ec27581a4f9..b50cf57ed16 100644
--- a/libcxx/test/std/utilities/meta/meta.rel/is_base_of.pass.cpp
+++ b/libcxx/test/std/utilities/meta/meta.rel/is_base_of.pass.cpp
@@ -39,6 +39,7 @@ struct B {};
struct B1 : B {};
struct B2 : B {};
struct D : private B1, private B2 {};
+struct I0; // incomplete
int main(int, char**)
{
@@ -54,5 +55,19 @@ int main(int, char**)
test_is_not_base_of<B[3], D[3]>();
test_is_not_base_of<int, int>();
+// A scalar is never the base class of anything (including incomplete types)
+ test_is_not_base_of<int, B>();
+ test_is_not_base_of<int, B1>();
+ test_is_not_base_of<int, B2>();
+ test_is_not_base_of<int, D>();
+ test_is_not_base_of<int, I0>();
+
+// A scalar never has base classes (including incomplete types)
+ test_is_not_base_of<B, int>();
+ test_is_not_base_of<B1, int>();
+ test_is_not_base_of<B2, int>();
+ test_is_not_base_of<D, int>();
+ test_is_not_base_of<I0, int>();
+
return 0;
}
OpenPOWER on IntegriCloud