commit a901c505abffd13e96a7d304393bb759aad87e59
parent 0ddc0f47bd2a03678e1afbc384550aecb55a318f
Author: Roberto Ierusalimschy <roberto@inf.puc-rio.br>
Date: Wed, 29 Apr 2020 16:36:58 -0300
Fixed warning about casts between function pointers
gcc now warns (with -Wextra) about casts between pointers to different
function types. The type 'void(*)(void)' works as a 'void*' for function
pointers, cleaning the warning.
Diffstat:
1 file changed, 8 insertions(+), 1 deletion(-)
diff --git a/loadlib.c b/loadlib.c
@@ -68,6 +68,13 @@ static const char *const CLIBS = "_CLIBS";
/*
+** Special type equivalent to '(void*)' for functions in gcc
+** (to supress warnings when converting function pointers)
+*/
+typedef void (*voidf)(void);
+
+
+/*
** system-dependent functions
*/
@@ -206,7 +213,7 @@ static void *lsys_load (lua_State *L, const char *path, int seeglb) {
static lua_CFunction lsys_sym (lua_State *L, void *lib, const char *sym) {
- lua_CFunction f = (lua_CFunction)GetProcAddress((HMODULE)lib, sym);
+ lua_CFunction f = (lua_CFunction)(voidf)GetProcAddress((HMODULE)lib, sym);
if (f == NULL) pusherror(L);
return f;
}