diff --git a/lib/std/dynamic_library.zig b/lib/std/dynamic_library.zig index f0e8ae0f117f..bc7df403e828 100644 --- a/lib/std/dynamic_library.zig +++ b/lib/std/dynamic_library.zig @@ -40,6 +40,19 @@ pub const DynLib = struct { } pub fn lookup(self: *DynLib, comptime T: type, name: [:0]const u8) ?T { + switch (@typeInfo(T)) { + .Pointer => |pointer| { + switch (@typeInfo(pointer.child)) { + .Fn => |function| { + if (function.calling_convention == .Unspecified) { + @compileError("callconv cannot be .Unspecified for: " ++ @typeName(T)); + } + }, + else => {}, + } + }, + else => @compileError("expected a pointer type"), + } return self.inner.lookup(T, name); } };