[Bitfields][NFC] Make sure bitfields are contiguous
Differential Revision: https://reviews.llvm.org/D83202
diff --git a/llvm/unittests/ADT/BitFieldsTest.cpp b/llvm/unittests/ADT/BitFieldsTest.cpp
index 759c183..3062d5d 100644
--- a/llvm/unittests/ADT/BitFieldsTest.cpp
+++ b/llvm/unittests/ADT/BitFieldsTest.cpp
@@ -192,6 +192,18 @@
EXPECT_FALSE((Bitfield::isOverlapping<C, D>()));
}
+TEST(BitfieldsTest, areContiguous) {
+ using A = Bitfield::Element<unsigned, 0, 1>; // Next Bit:1
+ using B = Bitfield::Element<unsigned, 1, 4>; // Next Bit:5
+ using C = Bitfield::Element<unsigned, 5, 3>; // Next Bit:8
+ EXPECT_TRUE((Bitfield::areContiguous<A, B>()));
+ EXPECT_TRUE((Bitfield::areContiguous<A, B, C>()));
+
+ EXPECT_FALSE((Bitfield::areContiguous<A, C>()));
+ EXPECT_FALSE((Bitfield::areContiguous<A, A>()));
+ EXPECT_FALSE((Bitfield::areContiguous<B, A>()));
+}
+
TEST(BitfieldsTest, FullUint64) {
uint64_t Storage = 0;
using Value = Bitfield::Element<uint64_t, 0, 64>;