aboutsummaryrefslogtreecommitdiff
path: root/src/Module.zig
diff options
context:
space:
mode:
authorVeikka Tuominen <git@vexu.eu>2022-06-09 17:54:32 +0300
committerVeikka Tuominen <git@vexu.eu>2022-06-11 11:02:56 +0300
commit0f820d0bdf98b3f8429a9cf2f1b405c2c0a4d958 (patch)
treed8793ad6cd0258eb704d35fc536636aac3fa45fc /src/Module.zig
parent002df65b6ec55684d6bc6790ae7b0c0f4abb1375 (diff)
downloadzig-0f820d0bdf98b3f8429a9cf2f1b405c2c0a4d958.tar.gz
zig-0f820d0bdf98b3f8429a9cf2f1b405c2c0a4d958.zip
stage2: improve debugging tools
llvm: dump failed module when -femit-llvm-ir set print_air: * print fully qualified name * use Type.fmt and Value.fmtValue, fmtDebug is useless TypedValue * handle anon structs and tuples * fix bugs
Diffstat (limited to 'src/Module.zig')
-rw-r--r--src/Module.zig7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/Module.zig b/src/Module.zig
index f03ba77a39..bcf6491ce6 100644
--- a/src/Module.zig
+++ b/src/Module.zig
@@ -3790,9 +3790,12 @@ pub fn ensureFuncBodyAnalyzed(mod: *Module, func: *Fn) SemaError!void {
defer liveness.deinit(gpa);
if (builtin.mode == .Debug and mod.comp.verbose_air) {
- std.debug.print("# Begin Function AIR: {s}:\n", .{decl.name});
+ const fqn = try decl.getFullyQualifiedName(mod);
+ defer mod.gpa.free(fqn);
+
+ std.debug.print("# Begin Function AIR: {s}:\n", .{fqn});
@import("print_air.zig").dump(mod, air, liveness);
- std.debug.print("# End Function AIR: {s}\n\n", .{decl.name});
+ std.debug.print("# End Function AIR: {s}\n\n", .{fqn});
}
mod.comp.bin_file.updateFunc(mod, func, air, liveness) catch |err| switch (err) {