diff options
Diffstat (limited to 'unittests/CodeGen/MachineInstrBundleIteratorTest.cpp')
-rw-r--r-- | unittests/CodeGen/MachineInstrBundleIteratorTest.cpp | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/unittests/CodeGen/MachineInstrBundleIteratorTest.cpp b/unittests/CodeGen/MachineInstrBundleIteratorTest.cpp index ca61fcbe59f..416f5774f4c 100644 --- a/unittests/CodeGen/MachineInstrBundleIteratorTest.cpp +++ b/unittests/CodeGen/MachineInstrBundleIteratorTest.cpp @@ -22,25 +22,47 @@ struct MyBundledInstr }; typedef MachineInstrBundleIterator<MyBundledInstr> bundled_iterator; typedef MachineInstrBundleIterator<const MyBundledInstr> const_bundled_iterator; +typedef MachineInstrBundleIterator<MyBundledInstr, true> + reverse_bundled_iterator; +typedef MachineInstrBundleIterator<const MyBundledInstr, true> + const_reverse_bundled_iterator; #ifdef GTEST_HAS_DEATH_TEST #ifndef NDEBUG TEST(MachineInstrBundleIteratorTest, CheckForBundles) { MyBundledInstr MBI; + auto I = MBI.getIterator(); + auto RI = I.getReverse(); // Confirm that MBI is always considered bundled. EXPECT_TRUE(MBI.isBundledWithPred()); EXPECT_TRUE(MBI.isBundledWithSucc()); // Confirm that iterators check in their constructor for bundled iterators. + EXPECT_DEATH((void)static_cast<bundled_iterator>(I), + "not legal to initialize"); EXPECT_DEATH((void)static_cast<bundled_iterator>(MBI), "not legal to initialize"); EXPECT_DEATH((void)static_cast<bundled_iterator>(&MBI), "not legal to initialize"); + EXPECT_DEATH((void)static_cast<const_bundled_iterator>(I), + "not legal to initialize"); EXPECT_DEATH((void)static_cast<const_bundled_iterator>(MBI), "not legal to initialize"); EXPECT_DEATH((void)static_cast<const_bundled_iterator>(&MBI), "not legal to initialize"); + EXPECT_DEATH((void)static_cast<reverse_bundled_iterator>(RI), + "not legal to initialize"); + EXPECT_DEATH((void)static_cast<reverse_bundled_iterator>(MBI), + "not legal to initialize"); + EXPECT_DEATH((void)static_cast<reverse_bundled_iterator>(&MBI), + "not legal to initialize"); + EXPECT_DEATH((void)static_cast<const_reverse_bundled_iterator>(RI), + "not legal to initialize"); + EXPECT_DEATH((void)static_cast<const_reverse_bundled_iterator>(MBI), + "not legal to initialize"); + EXPECT_DEATH((void)static_cast<const_reverse_bundled_iterator>(&MBI), + "not legal to initialize"); } #endif #endif |