Skip to content

Commit bfd3b0c

Browse files
committed
LLVMInstructionList: Add empty() method
1 parent ce87b96 commit bfd3b0c

File tree

2 files changed

+33
-0
lines changed

2 files changed

+33
-0
lines changed

src/engine/internal/llvm/llvminstructionlist.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,8 @@ class LLVMInstructionList
1919
LLVMInstruction *first() const;
2020
LLVMInstruction *last() const;
2121

22+
bool empty() const { return !first(); }
23+
2224
bool containsInstruction(LLVMInstruction *ins) const;
2325
bool containsInstruction(std::function<bool(const LLVMInstruction *)> func) const;
2426

test/llvm/llvminstructionlist_test.cpp

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,12 @@ TEST(LLVMInstructionListTest, EmptyList_Last)
1717
ASSERT_EQ(list.last(), nullptr);
1818
}
1919

20+
TEST(LLVMInstructionListTest, EmptyList_Empty)
21+
{
22+
LLVMInstructionList list;
23+
ASSERT_TRUE(list.empty());
24+
}
25+
2026
TEST(LLVMInstructionListTest, EmptyList_ContainsNull)
2127
{
2228
LLVMInstructionList list;
@@ -188,6 +194,15 @@ TEST(LLVMInstructionListTest, AddSingleInstruction_Last)
188194
ASSERT_EQ(list.last(), ins.get());
189195
}
190196

197+
TEST(LLVMInstructionListTest, AddSingleInstruction_Empty)
198+
{
199+
LLVMInstructionList list;
200+
auto ins = std::make_shared<LLVMInstruction>(LLVMInstruction::Type::FunctionCall, nullptr, false);
201+
list.addInstruction(ins);
202+
203+
ASSERT_FALSE(list.empty());
204+
}
205+
191206
TEST(LLVMInstructionListTest, AddSingleInstruction_Previous)
192207
{
193208
LLVMInstructionList list;
@@ -238,6 +253,22 @@ TEST(LLVMInstructionListTest, AddMultipleInstructions_Last)
238253
ASSERT_EQ(list.last(), ins3.get());
239254
}
240255

256+
TEST(LLVMInstructionListTest, AddMultipleInstructions_Empty)
257+
{
258+
LLVMInstructionList list;
259+
260+
auto ins1 = std::make_shared<LLVMInstruction>(LLVMInstruction::Type::FunctionCall, nullptr, false);
261+
list.addInstruction(ins1);
262+
263+
auto ins2 = std::make_shared<LLVMInstruction>(LLVMInstruction::Type::FunctionCall, nullptr, false);
264+
list.addInstruction(ins2);
265+
266+
auto ins3 = std::make_shared<LLVMInstruction>(LLVMInstruction::Type::FunctionCall, nullptr, false);
267+
list.addInstruction(ins3);
268+
269+
ASSERT_FALSE(list.empty());
270+
}
271+
241272
TEST(LLVMInstructionListTest, AddMultipleInstructions_PreviousOfFirst)
242273
{
243274
LLVMInstructionList list;

0 commit comments

Comments
 (0)