summaryrefslogtreecommitdiff
path: root/unittests/Support/AlignOfTest.cpp
diff options
context:
space:
mode:
authorChandler Carruth <chandlerc@gmail.com>2012-06-16 09:44:00 +0000
committerChandler Carruth <chandlerc@gmail.com>2012-06-16 09:44:00 +0000
commitfd2b40efd7687621a7c849556a089ce4a610aafd (patch)
tree299b255611665ae668b21b864b7af158d1421c7f /unittests/Support/AlignOfTest.cpp
parent9755cd600f7a1bbdc080bbfcbd2529a54e1b3aab (diff)
downloadllvm-fd2b40efd7687621a7c849556a089ce4a610aafd.tar.gz
llvm-fd2b40efd7687621a7c849556a089ce4a610aafd.tar.bz2
llvm-fd2b40efd7687621a7c849556a089ce4a610aafd.tar.xz
Relax one assertion -- long double has strange alignments on lots of
platforms. Also, remove one assertion on MSVC because it produces a completely preposterous result, claiming something needs 12-byte alignment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@158599 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'unittests/Support/AlignOfTest.cpp')
-rw-r--r--unittests/Support/AlignOfTest.cpp7
1 files changed, 6 insertions, 1 deletions
diff --git a/unittests/Support/AlignOfTest.cpp b/unittests/Support/AlignOfTest.cpp
index c413451f90..461b1d67e0 100644
--- a/unittests/Support/AlignOfTest.cpp
+++ b/unittests/Support/AlignOfTest.cpp
@@ -139,7 +139,7 @@ TEST(AlignOfTest, BasicAlignmentInvariants) {
EXPECT_LE(alignOf<long>(), alignOf<long long>());
EXPECT_LE(alignOf<char>(), alignOf<float>());
EXPECT_LE(alignOf<float>(), alignOf<double>());
- EXPECT_LE(alignOf<double>(), alignOf<long double>());
+ EXPECT_LE(alignOf<char>(), alignOf<long double>());
EXPECT_LE(alignOf<char>(), alignOf<void *>());
EXPECT_EQ(alignOf<void *>(), alignOf<int *>());
EXPECT_LE(alignOf<char>(), alignOf<S1>());
@@ -246,7 +246,12 @@ TEST(AlignOfTest, BasicAlignedArray) {
EXPECT_EQ(alignOf<V5>(), alignOf<AlignedCharArray<V5>::union_type>());
EXPECT_EQ(alignOf<V6>(), alignOf<AlignedCharArray<V6>::union_type>());
EXPECT_EQ(alignOf<V7>(), alignOf<AlignedCharArray<V7>::union_type>());
+
+ // Some versions of MSVC get this wrong somewhat disturbingly. The failure
+ // appears to be benign: alignOf<V8>() produces a preposterous value: 12
+#ifndef _MSC_VER
EXPECT_EQ(alignOf<V8>(), alignOf<AlignedCharArray<V8>::union_type>());
+#endif
}
}