diff options
| author | Baitinq <[email protected]> | 2025-03-12 23:54:06 +0100 |
|---|---|---|
| committer | Baitinq <[email protected]> | 2025-03-12 23:54:06 +0100 |
| commit | 7ff04ed6bc90d49763d9197a61ffeaee602687df (patch) | |
| tree | ddb4715decc8079de6322158d2d6bf29102c918d | |
| parent | Misc: Link against llvm 20 (diff) | |
| download | interpreter-7ff04ed6bc90d49763d9197a61ffeaee602687df.tar.gz interpreter-7ff04ed6bc90d49763d9197a61ffeaee602687df.tar.bz2 interpreter-7ff04ed6bc90d49763d9197a61ffeaee602687df.zip | |
Codegen: Fix printing of llvm error messages
| -rw-r--r-- | src/codegen.zig | 19 |
1 files changed, 11 insertions, 8 deletions
diff --git a/src/codegen.zig b/src/codegen.zig index c82c1a6..b6941db 100644 --- a/src/codegen.zig +++ b/src/codegen.zig @@ -65,11 +65,12 @@ pub const CodeGen = struct { // Generate code const triple = llvm.LLVMGetDefaultTargetTriple(); var target_ref: llvm.LLVMTargetRef = undefined; - var message: ?[*c]u8 = undefined; - const xd = llvm.LLVMGetTargetFromTriple(triple, &target_ref, &message.?); - std.debug.print("XD: {any}.\n", .{xd}); - // std.debug.print("Target output: {any}.\n", .{message}); - // core.LLVMDisposeMessage(message); + var message: [*c]u8 = undefined; + var result = llvm.LLVMGetTargetFromTriple(triple, &target_ref, &message); + if (result != 0) { + std.debug.print("Target output: {s}.\n", .{message}); + llvm.LLVMDisposeMessage(message.?); + } const target_machine = llvm.LLVMCreateTargetMachine( target_ref, triple, @@ -91,9 +92,11 @@ pub const CodeGen = struct { ); std.debug.print("Object file generated: {s}\n", .{filename}); - _ = llvm.LLVMVerifyModule(self.llvm_module, llvm.LLVMAbortProcessAction, &message.?); - // std.debug.print("Verification output: {any}.\n", .{message}); - // core.LLVMDisposeMessage(message); + result = llvm.LLVMVerifyModule(self.llvm_module, llvm.LLVMAbortProcessAction, &message); + if (result != 0) { + std.debug.print("Verification output: {any}.\n", .{message}); + llvm.LLVMDisposeMessage(message); + } // Clean up LLVM resources defer llvm.LLVMDisposeBuilder(self.builder); |