1 //===- llvm/unittest/ADT/PointerEmbeddedIntTest.cpp -----------------------===// 2 // 3 // The LLVM Compiler Infrastructure 4 // 5 // This file is distributed under the University of Illinois Open Source 6 // License. See LICENSE.TXT for details. 7 // 8 //===----------------------------------------------------------------------===// 9 10 #include "gtest/gtest.h" 11 #include "llvm/ADT/PointerEmbeddedInt.h" 12 using namespace llvm; 13 14 namespace { 15 16 TEST(PointerEmbeddedIntTest, Basic) { 17 PointerEmbeddedInt<int, CHAR_BIT> I = 42, J = 43; 18 19 EXPECT_EQ(42, I); 20 EXPECT_EQ(43, I + 1); 21 EXPECT_EQ(sizeof(uintptr_t) * CHAR_BIT - CHAR_BIT, 22 PointerLikeTypeTraits<decltype(I)>::NumLowBitsAvailable); 23 24 EXPECT_FALSE(I == J); 25 EXPECT_TRUE(I != J); 26 EXPECT_TRUE(I < J); 27 EXPECT_FALSE(I > J); 28 EXPECT_TRUE(I <= J); 29 EXPECT_FALSE(I >= J); 30 31 EXPECT_FALSE(I == 43); 32 EXPECT_TRUE(I != 43); 33 EXPECT_TRUE(I < 43); 34 EXPECT_FALSE(I > 43); 35 EXPECT_TRUE(I <= 43); 36 EXPECT_FALSE(I >= 43); 37 38 EXPECT_FALSE(42 == J); 39 EXPECT_TRUE(42 != J); 40 EXPECT_TRUE(42 < J); 41 EXPECT_FALSE(42 > J); 42 EXPECT_TRUE(42 <= J); 43 EXPECT_FALSE(42 >= J); 44 } 45 46 } // end anonymous namespace 47