diff options
| author | Andrew Kelley <andrew@ziglang.org> | 2021-05-15 21:00:15 -0700 |
|---|---|---|
| committer | Andrew Kelley <andrew@ziglang.org> | 2021-05-15 21:00:15 -0700 |
| commit | dc036f5b6fde67c4a74701c75c5947a956abaec1 (patch) | |
| tree | 149d62133f77763a194685b5793f764619707df7 /src/link/Elf.zig | |
| parent | 5769ed2d4428305e4478cf4e425f5df2469a7ffd (diff) | |
| download | zig-dc036f5b6fde67c4a74701c75c5947a956abaec1.tar.gz zig-dc036f5b6fde67c4a74701c75c5947a956abaec1.zip | |
codegen: implement const value rendering for ints <= 64 bits
Diffstat (limited to 'src/link/Elf.zig')
| -rw-r--r-- | src/link/Elf.zig | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/src/link/Elf.zig b/src/link/Elf.zig index 83b35cf12c..e88bb036f2 100644 --- a/src/link/Elf.zig +++ b/src/link/Elf.zig @@ -2196,6 +2196,12 @@ pub fn updateDecl(self: *Elf, module: *Module, decl: *Module.Decl) !void { if (decl.val.tag() == .extern_fn) { return; // TODO Should we do more when front-end analyzed extern decl? } + if (decl.val.castTag(.variable)) |payload| { + const variable = payload.data; + if (variable.is_extern) { + return; // TODO Should we do more when front-end analyzed extern decl? + } + } var code_buffer = std.ArrayList(u8).init(self.base.allocator); defer code_buffer.deinit(); @@ -2287,9 +2293,10 @@ pub fn updateDecl(self: *Elf, module: *Module, decl: *Module.Decl) !void { } else { // TODO implement .debug_info for global variables } + const decl_val = if (decl.val.castTag(.variable)) |payload| payload.data.init else decl.val; const res = try codegen.generateSymbol(&self.base, decl.srcLoc(), .{ .ty = decl.ty, - .val = decl.val, + .val = decl_val, }, &code_buffer, .{ .dwarf = .{ .dbg_line = &dbg_line_buffer, |
