Zig Version
0.16.0-dev.2534+12cb5b928
Steps to Reproduce and Observed Behavior
Pretty easy to reason about once seen, but
zig init a project
add a "check" step
add a @compileLog to src/main.zig
pub fn main() void {
@compileLog("This will cause a leak");
}
Stack trace
❯ ~/lab/zig/build/stage5/bin/zig build check
check
└─ compile exe repro_zig Debug native 1 errors
src/main.zig:2:5: error: found compile log statement
@compileLog("This will cause a leak");
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
referenced by:
callMain [inlined]: /home/rad/lab/zig/lib/std/start.zig:680:59
callMainWithArgs [inlined]: /home/rad/lab/zig/lib/std/start.zig:630:20
posixCallMainAndExit: /home/rad/lab/zig/lib/std/start.zig:583:38
2 reference(s) hidden; use '-freference-trace=5' to see all references
Compile Log Output:
@as(*const [22:0]u8, "This will cause a leak")
error: error(DebugAllocator): memory address 0x7f396e9a0000 leaked:
/home/rad/lab/zig/build/stage3/lib/zig/std/array_list.zig:661:52: 0x1e26a2d in toOwnedSlice (std.zig)
const new_memory = try gpa.alignedAlloc(T, alignment, self.items.len);
^
/home/rad/lab/zig/src/Compilation.zig:4330:58: 0x1e01bc4 in getAllErrorsAlloc (main.zig)
break :compile_log_text try log_text.toOwnedSlice(gpa);
^
/home/rad/lab/zig/src/Compilation.zig:4379:40: 0x1f041b5 in anyErrors (main.zig)
var errors = comp.getAllErrorsAlloc() catch return true;
^
/home/rad/lab/zig/src/Zcu/PerThread.zig:3211:48: 0x1def2e1 in processExports (main.zig)
const skip_linker_work = zcu.comp.anyErrors();
^
error(DebugAllocator): memory address 0x7f396e9a0040 leaked:
/home/rad/lab/zig/build/stage3/lib/zig/std/array_list.zig:661:52: 0x1e26a2d in toOwnedSlice (std.zig)
const new_memory = try gpa.alignedAlloc(T, alignment, self.items.len);
^
/home/rad/lab/zig/src/Compilation.zig:4330:58: 0x1e01bc4 in getAllErrorsAlloc (main.zig)
break :compile_log_text try log_text.toOwnedSlice(gpa);
^
/home/rad/lab/zig/src/Compilation.zig:4379:40: 0x1f041b5 in anyErrors (main.zig)
var errors = comp.getAllErrorsAlloc() catch return true;
^
/home/rad/lab/zig/src/Compilation.zig:3203:18: 0x1df5204 in update (main.zig)
if (anyErrors(comp)) {
^
error(DebugAllocator): memory address 0x7f396e9a0080 leaked:
/home/rad/lab/zig/build/stage3/lib/zig/std/array_list.zig:661:52: 0x1e26a2d in toOwnedSlice (std.zig)
const new_memory = try gpa.alignedAlloc(T, alignment, self.items.len);
^
/home/rad/lab/zig/src/Compilation.zig:4330:58: 0x1e01bc4 in getAllErrorsAlloc (main.zig)
break :compile_log_text try log_text.toOwnedSlice(gpa);
^
/home/rad/lab/zig/src/main.zig:4308:50: 0x1cbfc97 in serveUpdateResults (main.zig)
var error_bundle = try comp.getAllErrorsAlloc();
^
/home/rad/lab/zig/src/main.zig:4250:39: 0x1cc47db in serve (main.zig)
try serveUpdateResults(&server, comp);
^
error: 1 compilation errors
failed command: /home/rad/lab/zig/build/stage5/bin/zig build-exe -ODebug --dep repro_zig -Mroot=/home/rad/lab/repro-zig/src/main.zig -Mrepro_zig=/home/rad/lab/repro-zig/src/root.zig --cache-dir .zig-cache --global-cache-dir /home/rad/.cache/zig --name repro_zig --zig-lib-dir /home/rad/lab/zig/lib/ --listen=-
Build Summary: 0/2 steps succeeded (1 failed)
check transitive failure
└─ compile exe repro_zig Debug native 1 errors
error: the following build command failed with exit code 1:
.zig-cache/o/c4c650c638e938cdcb25bd66a88524a8/build /home/rad/lab/zig/build/stage5/bin/zig /home/rad/lab/zig/lib /home/rad/lab/repro-zig .zig-cache /home/rad/.cache/zig --seed 0x3325a026 -Za60cae8f259772f6 check
Expected Behavior
### Zig Version
0.16.0-dev.2534+12cb5b928
### Steps to Reproduce and Observed Behavior
Pretty easy to reason about once seen, but
zig init a project
add a "check" step
add a `@compileLog` to src/main.zig
```
pub fn main() void {
@compileLog("This will cause a leak");
}
```
<details>
<summary>Stack trace</summary>
```
❯ ~/lab/zig/build/stage5/bin/zig build check
check
└─ compile exe repro_zig Debug native 1 errors
src/main.zig:2:5: error: found compile log statement
@compileLog("This will cause a leak");
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
referenced by:
callMain [inlined]: /home/rad/lab/zig/lib/std/start.zig:680:59
callMainWithArgs [inlined]: /home/rad/lab/zig/lib/std/start.zig:630:20
posixCallMainAndExit: /home/rad/lab/zig/lib/std/start.zig:583:38
2 reference(s) hidden; use '-freference-trace=5' to see all references
Compile Log Output:
@as(*const [22:0]u8, "This will cause a leak")
error: error(DebugAllocator): memory address 0x7f396e9a0000 leaked:
/home/rad/lab/zig/build/stage3/lib/zig/std/array_list.zig:661:52: 0x1e26a2d in toOwnedSlice (std.zig)
const new_memory = try gpa.alignedAlloc(T, alignment, self.items.len);
^
/home/rad/lab/zig/src/Compilation.zig:4330:58: 0x1e01bc4 in getAllErrorsAlloc (main.zig)
break :compile_log_text try log_text.toOwnedSlice(gpa);
^
/home/rad/lab/zig/src/Compilation.zig:4379:40: 0x1f041b5 in anyErrors (main.zig)
var errors = comp.getAllErrorsAlloc() catch return true;
^
/home/rad/lab/zig/src/Zcu/PerThread.zig:3211:48: 0x1def2e1 in processExports (main.zig)
const skip_linker_work = zcu.comp.anyErrors();
^
error(DebugAllocator): memory address 0x7f396e9a0040 leaked:
/home/rad/lab/zig/build/stage3/lib/zig/std/array_list.zig:661:52: 0x1e26a2d in toOwnedSlice (std.zig)
const new_memory = try gpa.alignedAlloc(T, alignment, self.items.len);
^
/home/rad/lab/zig/src/Compilation.zig:4330:58: 0x1e01bc4 in getAllErrorsAlloc (main.zig)
break :compile_log_text try log_text.toOwnedSlice(gpa);
^
/home/rad/lab/zig/src/Compilation.zig:4379:40: 0x1f041b5 in anyErrors (main.zig)
var errors = comp.getAllErrorsAlloc() catch return true;
^
/home/rad/lab/zig/src/Compilation.zig:3203:18: 0x1df5204 in update (main.zig)
if (anyErrors(comp)) {
^
error(DebugAllocator): memory address 0x7f396e9a0080 leaked:
/home/rad/lab/zig/build/stage3/lib/zig/std/array_list.zig:661:52: 0x1e26a2d in toOwnedSlice (std.zig)
const new_memory = try gpa.alignedAlloc(T, alignment, self.items.len);
^
/home/rad/lab/zig/src/Compilation.zig:4330:58: 0x1e01bc4 in getAllErrorsAlloc (main.zig)
break :compile_log_text try log_text.toOwnedSlice(gpa);
^
/home/rad/lab/zig/src/main.zig:4308:50: 0x1cbfc97 in serveUpdateResults (main.zig)
var error_bundle = try comp.getAllErrorsAlloc();
^
/home/rad/lab/zig/src/main.zig:4250:39: 0x1cc47db in serve (main.zig)
try serveUpdateResults(&server, comp);
^
error: 1 compilation errors
failed command: /home/rad/lab/zig/build/stage5/bin/zig build-exe -ODebug --dep repro_zig -Mroot=/home/rad/lab/repro-zig/src/main.zig -Mrepro_zig=/home/rad/lab/repro-zig/src/root.zig --cache-dir .zig-cache --global-cache-dir /home/rad/.cache/zig --name repro_zig --zig-lib-dir /home/rad/lab/zig/lib/ --listen=-
Build Summary: 0/2 steps succeeded (1 failed)
check transitive failure
└─ compile exe repro_zig Debug native 1 errors
error: the following build command failed with exit code 1:
.zig-cache/o/c4c650c638e938cdcb25bd66a88524a8/build /home/rad/lab/zig/build/stage5/bin/zig /home/rad/lab/zig/lib /home/rad/lab/repro-zig .zig-cache /home/rad/.cache/zig --seed 0x3325a026 -Za60cae8f259772f6 check
```
</details>
### Expected Behavior
-