diff options
| -rw-r--r-- | src/bootstrap/llvm.src | 2 | ||||
| -rw-r--r-- | src/bootstrap/parser.src | 2 | ||||
| -rw-r--r-- | src/bootstrap/tokenizer.src | 4 | ||||
| -rw-r--r-- | src/codegen.zig | 2 |
4 files changed, 6 insertions, 4 deletions
diff --git a/src/bootstrap/llvm.src b/src/bootstrap/llvm.src index 42f1a5b..4e78f5a 100644 --- a/src/bootstrap/llvm.src +++ b/src/bootstrap/llvm.src @@ -266,7 +266,7 @@ let LLVMTargetRef = newtype *void; extern LLVMModuleCreateWithName = (*i8) => LLVMModuleRef; extern LLVMGetGlobalContext = () => LLVMContextRef; -extern LLVMCreateBuilder = () => LLVMBuilderRef; /* TODO: Create types */ +extern LLVMCreateBuilder = () => LLVMBuilderRef; extern LLVMDisposeModule = (LLVMModuleRef) => void; extern LLVMShutdown = () => void; extern LLVMDisposeBuilder = (LLVMBuilderRef) => void; diff --git a/src/bootstrap/parser.src b/src/bootstrap/parser.src index 9ee53f6..7e2836d 100644 --- a/src/bootstrap/parser.src +++ b/src/bootstrap/parser.src @@ -253,7 +253,7 @@ let parser_parse_primary_expression = (p: *parser) => *Node { if (*tok).type == TOKEN_IDENTIFIER { let d = cast(*NODE_PRIMARY_EXPRESSION_IDENTIFIER_DATA, arena_alloc((*p).arena, sizeof(NODE_PRIMARY_EXPRESSION_IDENTIFIER_DATA))); - (*d).name = (*tok).data; + (*d).name = cast(*i8, (*tok).data); (*d).type = cast(*Node, null); /* TODO */ let n = Node{}; n.type = NODE_PRIMARY_EXPRESSION_IDENTIFIER; diff --git a/src/bootstrap/tokenizer.src b/src/bootstrap/tokenizer.src index 814a377..70ec1bb 100644 --- a/src/bootstrap/tokenizer.src +++ b/src/bootstrap/tokenizer.src @@ -517,7 +517,7 @@ let tokenizer_init = (alloc: *arena, file: slice) => *tokenizer { let t = cast(*tokenizer, arena_alloc(alloc, sizeof(tokenizer))); (*t).arena = alloc; (*t).offset = 0; - (*t).buf = file.data; + (*t).buf = cast(*i8, file.data); (*t).buf_len = file.data_len; println("File size: %d", (*t).buf_len); @@ -547,7 +547,7 @@ let tokenizer_tokenize = (t: *tokenizer) => slice { print_tokens(tokens, tokens_len); let res = slice{}; - res.data = tokens; + res.data = cast(*void, tokens); res.data_len = tokens_len; return res; }; diff --git a/src/codegen.zig b/src/codegen.zig index 8f2b9fa..0cc2367 100644 --- a/src/codegen.zig +++ b/src/codegen.zig @@ -215,6 +215,8 @@ pub const CodeGen = struct { const x = try self.get_struct_field(xd, name); const variable = try self.generate_expression_value(assignment_statement.rhs, null); + std.debug.print("7TYP {s}: {any} vs {any} -- {any}\n", .{ name, x.type, variable.node_type.TYPE, variable.node }); + std.debug.assert(self.compare_types(x.type, variable.node_type, assignment_statement.is_dereference)); _ = llvm.LLVMBuildStore(self.builder, variable.value, x.value); }, else => unreachable, |