diff options
Diffstat (limited to 'src/test/java')
| -rw-r--r-- | src/test/java/org/shedlang/compiler/backends/llvm/ir/LlvmIrSerializerInstructionTests.java | 12 | ||||
| -rw-r--r-- | src/test/java/org/shedlang/compiler/backends/llvm/ir/ast/LlvmIr.java | 7 |
2 files changed, 19 insertions, 0 deletions
diff --git a/src/test/java/org/shedlang/compiler/backends/llvm/ir/LlvmIrSerializerInstructionTests.java b/src/test/java/org/shedlang/compiler/backends/llvm/ir/LlvmIrSerializerInstructionTests.java index 83bf54bb..17a17343 100644 --- a/src/test/java/org/shedlang/compiler/backends/llvm/ir/LlvmIrSerializerInstructionTests.java +++ b/src/test/java/org/shedlang/compiler/backends/llvm/ir/LlvmIrSerializerInstructionTests.java @@ -28,6 +28,18 @@ public class LlvmIrSerializerInstructionTests { } @Test + public void allocaIsSerialized() throws IOException { + var instruction = LlvmIr.alloca( + LlvmIr.variableLocal("x"), + LlvmTypes.INT_64 + ); + + var result = serializeToString(instruction, LlvmIrSerializer::serializeInstruction); + + assertThat(result, equalTo("%x = alloca i64")); + } + + @Test public void brIsSerializedWithOperandAndLabels() throws IOException { var instruction = LlvmIr.br( LlvmIr.variableLocal("x"), diff --git a/src/test/java/org/shedlang/compiler/backends/llvm/ir/ast/LlvmIr.java b/src/test/java/org/shedlang/compiler/backends/llvm/ir/ast/LlvmIr.java index 49a653c5..3a317c3d 100644 --- a/src/test/java/org/shedlang/compiler/backends/llvm/ir/ast/LlvmIr.java +++ b/src/test/java/org/shedlang/compiler/backends/llvm/ir/ast/LlvmIr.java @@ -23,6 +23,13 @@ public class LlvmIr { return new LlvmAdd(target, type, left, right); } + public static LlvmAlloca alloca( + LlvmVariable target, + LlvmType type + ) { + return new LlvmAlloca(target, type); + } + public static LlvmBasicBlock basicBlock( List<LlvmInstruction> instructions, LlvmTerminatorInstruction terminator |
