aboutsummaryrefslogtreecommitdiff
path: root/src/codegen/llvm.zig
diff options
context:
space:
mode:
authorJakub Konka <kubkon@jakubkonka.com>2022-02-05 17:41:03 +0100
committerJakub Konka <kubkon@jakubkonka.com>2022-02-06 08:42:14 +0100
commit556f0ce5bfb962764bb68d9d9c16765cf9e1b9ba (patch)
treee3ddbc2240c99a089906a10c4c40dcc83a883f17 /src/codegen/llvm.zig
parent04f379dd414184a42412f4497b0573d7612d6730 (diff)
downloadzig-556f0ce5bfb962764bb68d9d9c16765cf9e1b9ba.tar.gz
zig-556f0ce5bfb962764bb68d9d9c16765cf9e1b9ba.zip
stage2: add new Decl subtype, ExternFn
`ExternFn` will contain a maybe-lib-name if it was defined with the `extern` keyword like so ```zig extern "c" fn write(usize, usize, usize) usize; ``` `lib_name` will live as long as `ExternFn` decl does.
Diffstat (limited to 'src/codegen/llvm.zig')
-rw-r--r--src/codegen/llvm.zig4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/codegen/llvm.zig b/src/codegen/llvm.zig
index 81742d4866..e9457be783 100644
--- a/src/codegen/llvm.zig
+++ b/src/codegen/llvm.zig
@@ -622,7 +622,7 @@ pub const DeclGen = struct {
_ = func_payload;
@panic("TODO llvm backend genDecl function pointer");
} else if (decl.val.castTag(.extern_fn)) |extern_fn| {
- _ = try dg.resolveLlvmFunction(extern_fn.data);
+ _ = try dg.resolveLlvmFunction(extern_fn.data.owner_decl);
} else {
const target = dg.module.getTarget();
const global = try dg.resolveGlobalDecl(decl);
@@ -1410,7 +1410,7 @@ pub const DeclGen = struct {
},
.Fn => {
const fn_decl = switch (tv.val.tag()) {
- .extern_fn => tv.val.castTag(.extern_fn).?.data,
+ .extern_fn => tv.val.castTag(.extern_fn).?.data.owner_decl,
.function => tv.val.castTag(.function).?.data.owner_decl,
else => unreachable,
};