diff options
| author | Baitinq <[email protected]> | 2025-05-15 18:42:37 +0200 |
|---|---|---|
| committer | Baitinq <[email protected]> | 2025-05-15 18:42:41 +0200 |
| commit | c8439a069354cb526e02a76f52e978738ad8871c (patch) | |
| tree | e49d0eb7221431daee13965c90e724d2cba28cc0 /src/codegen.zig | |
| parent | Bootstrap: Tokenizer: Tokenize keywords (diff) | |
| download | pry-lang-c8439a069354cb526e02a76f52e978738ad8871c.tar.gz pry-lang-c8439a069354cb526e02a76f52e978738ad8871c.tar.bz2 pry-lang-c8439a069354cb526e02a76f52e978738ad8871c.zip | |
Feature: Add support for null pointers
Diffstat (limited to 'src/codegen.zig')
| -rw-r--r-- | src/codegen.zig | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/src/codegen.zig b/src/codegen.zig index 5733d5f..05cb877 100644 --- a/src/codegen.zig +++ b/src/codegen.zig @@ -426,6 +426,19 @@ pub const CodeGen = struct { return try self.generate_function_call_statement(@ptrCast(fn_call)); }, .PRIMARY_EXPRESSION => |primary_expression| switch (primary_expression) { + .NULL => { + return try self.generate_literal(llvm.LLVMConstNull(llvm.LLVMPointerType(llvm.LLVMInt8Type(), 0)), name, expression, try self.create_node(.{ + .TYPE = .{ + .POINTER_TYPE = .{ + .type = try self.create_node(.{ + .TYPE = .{ .SIMPLE_TYPE = .{ + .name = "i8", + } }, + }), + }, + }, + })); + }, .NUMBER => |n| { return try self.generate_literal(llvm.LLVMConstInt(llvm.LLVMInt64Type(), @intCast(n.value), 0), name, expression, try self.create_node(.{ .TYPE = .{ |