diff options
author | Dimitry Andric <dim@FreeBSD.org> | 2015-12-30 11:46:15 +0000 |
---|---|---|
committer | Dimitry Andric <dim@FreeBSD.org> | 2015-12-30 11:46:15 +0000 |
commit | dd58ef019b700900793a1eb48b52123db01b654e (patch) | |
tree | fcfbb4df56a744f4ddc6122c50521dd3f1c5e196 /unittests/Support/AlignOfTest.cpp | |
parent | 2fe5752e3a7c345cdb59e869278d36af33c13fa4 (diff) |
Notes
Diffstat (limited to 'unittests/Support/AlignOfTest.cpp')
-rw-r--r-- | unittests/Support/AlignOfTest.cpp | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/unittests/Support/AlignOfTest.cpp b/unittests/Support/AlignOfTest.cpp index e0859fc747f4..be208f7d28ea 100644 --- a/unittests/Support/AlignOfTest.cpp +++ b/unittests/Support/AlignOfTest.cpp @@ -89,6 +89,22 @@ V6::~V6() {} V7::~V7() {} V8::~V8() {} +struct Abstract1 { + virtual ~Abstract1() {} + virtual void method() = 0; + + char c; +}; + +struct Abstract2 : Abstract1 { + virtual ~Abstract2() {} + double d; +}; + +struct Final final : Abstract2 { + void method() override {} +}; + // Ensure alignment is a compile-time constant. char LLVM_ATTRIBUTE_UNUSED test_arr1 [AlignOf<char>::Alignment > 0] @@ -174,6 +190,10 @@ TEST(AlignOfTest, BasicAlignmentInvariants) { EXPECT_LE(alignOf<V1>(), alignOf<V6>()); EXPECT_LE(alignOf<V1>(), alignOf<V7>()); EXPECT_LE(alignOf<V1>(), alignOf<V8>()); + + EXPECT_LE(alignOf<char>(), alignOf<Abstract1>()); + EXPECT_LE(alignOf<double>(), alignOf<Abstract2>()); + EXPECT_LE(alignOf<Abstract2>(), alignOf<Final>()); } TEST(AlignOfTest, BasicAlignedArray) { |