diff --git a/lib/std/dynamic_library.zig b/lib/std/dynamic_library.zig index ebde25649f..154858586c 100644 --- a/lib/std/dynamic_library.zig +++ b/lib/std/dynamic_library.zig @@ -144,7 +144,7 @@ pub const LinuxDynLib = struct { pub fn lookup(self: *LinuxDynLib, comptime T: type, name: []const u8) ?T { if (self.elf_lib.lookup("", name)) |symbol| { - return @ptrCast(T, symbol); + return @intToPtr(T, symbol); } else { return null; } diff --git a/test/standalone/load_dynamic_library/main.zig b/test/standalone/load_dynamic_library/main.zig index a222f5b315..d1cba72db5 100644 --- a/test/standalone/load_dynamic_library/main.zig +++ b/test/standalone/load_dynamic_library/main.zig @@ -9,8 +9,7 @@ pub fn main() !void { var lib = try std.DynLib.open(dynlib_name); defer lib.close(); - const addr = lib.lookup("add") orelse return error.SymbolNotFound; - const addFn = @intToPtr(extern fn (i32, i32) i32, addr); + const addFn = lib.lookup(extern fn (i32, i32) i32, "add") orelse return error.SymbolNotFound; const result = addFn(12, 34); std.debug.assert(result == 46);