| author | |
| committer | |
| log | fb95fd84431e399d79266d5c9c4acd8ea124399a |
| tree | ee18dff0451955be7115b94bdf725dc92ae1163e |
| parent | 2d8d681b5ee34663aa87f0583f7b1a012b17d5b4 |
stage1 did this by accident by unconditionally semantically analyzing
std.builtin.panic, which imports the root source file to look for a
panic handler override. But stage2 is smarter; it will only semantically
analyze std.builtin.panic if any panic calls are emitted. So for very
simple compilations, the root source file was being ignored, even if it
contained `export` functions in it.1 files changed, 4 insertions(+), 0 deletions(-)
lib/std/start.zig+4| ... | ... | @@ -19,6 +19,10 @@ var argc_argv_ptr: [*]usize = undefined; |
| 19 | 19 | const start_sym_name = if (native_arch.isMIPS()) "__start" else "_start"; |
| 20 | 20 | |
| 21 | 21 | comptime { |
| 22 | // No matter what, we import the root file, so that any export, test, comptime | |
| 23 | // decls there get run. | |
| 24 | _ = root; | |
| 25 | ||
| 22 | 26 | // The self-hosted compiler is not fully capable of handling all of this start.zig file. |
| 23 | 27 | // Until then, we have simplified logic here for self-hosted. TODO remove this once |
| 24 | 28 | // self-hosted is capable enough to handle all of the real start.zig logic. |