diff options
| author | Jakub Konka <kubkon@jakubkonka.com> | 2022-02-05 17:41:03 +0100 |
|---|---|---|
| committer | Jakub Konka <kubkon@jakubkonka.com> | 2022-02-06 08:42:14 +0100 |
| commit | 556f0ce5bfb962764bb68d9d9c16765cf9e1b9ba (patch) | |
| tree | e3ddbc2240c99a089906a10c4c40dcc83a883f17 /src/codegen/llvm.zig | |
| parent | 04f379dd414184a42412f4497b0573d7612d6730 (diff) | |
| download | zig-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.zig | 4 |
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, }; |
