Skip to content

Conversation

@xeioex
Copy link
Contributor

@xeioex xeioex commented Aug 26, 2025

$ cat t.c
#include <quickjs.h>

int main() {
JSRuntime *rt;
rt = JS_NewRuntime();
JS_FreeRuntime(rt);
return 0;
}

$ clang-19 -I. -L. -Wextra -Wno-unused-parameter -Werror -o t t.c -lquickjs -lm In file included from t.c:1:
./quickjs.h:1052:34: error: cast from 'JSCFunctionMagic ' (aka 'struct JSValue ()(struct JSContext *, struct JSValue, int, struct JSValue *, int)') to 'JSCFunction ' (aka 'struct JSValue ()(struct JSContext *, struct JSValue, int, struct JSValue *)') converts to incompatible function type [-Werror,-Wcast-function-type-mismatch]
1052 | return JS_NewCFunction2(ctx, (JSCFunction )func, name, length, cproto, magic);
| ^~~~~~~~~~~~~~~~~~~
1 error generated.
$ gcc-13 -I. -L. -Wextra -Wno-unused-parameter -Werror -o t t.c -lquickjs -lm
In file included from t.c:1:
./quickjs.h: In function ‘JS_NewCFunctionMagic’:
./quickjs.h:1052:34: error: cast between incompatible function types from ‘JSValue (
)(JSContext *, JSValue, int, JSValue , int)’ to ‘JSValue ()(JSContext *, JSValue, int, JSValue *)’ [-Werror=cast-function-type]
1052 | return JS_NewCFunction2(ctx, (JSCFunction *)func, name, length, cproto, magic);
| ^
cc1: all warnings being treated as errors

@xeioex xeioex force-pushed the fix_cast_function_type_error branch from 3aad6a6 to c40ba7d Compare August 26, 2025 00:05
$ cat t.c
 #include <quickjs.h>

int main() {
    JSRuntime *rt;
    rt = JS_NewRuntime();
    JS_FreeRuntime(rt);
    return 0;
}

$ clang-19 -I. -L. -Wextra -Wno-unused-parameter -Werror -o t t.c -lquickjs -lm
In file included from t.c:1:
./quickjs.h:1052:34: error: cast from 'JSCFunctionMagic *' (aka 'struct JSValue (*)(struct JSContext *, struct JSValue, int, struct JSValue *, int)') to 'JSCFunction *' (aka 'struct JSValue (*)(struct JSContext *, struct JSValue, int, struct JSValue *)') converts to incompatible function type [-Werror,-Wcast-function-type-mismatch]
 1052 |     return JS_NewCFunction2(ctx, (JSCFunction *)func, name, length, cproto, magic);
      |                                  ^~~~~~~~~~~~~~~~~~~
1 error generated.
$ gcc-13 -I. -L. -Wextra -Wno-unused-parameter -Werror -o t t.c -lquickjs -lm
In file included from t.c:1:
./quickjs.h: In function ‘JS_NewCFunctionMagic’:
./quickjs.h:1052:34: error: cast between incompatible function types from ‘JSValue (*)(JSContext *, JSValue,  int,  JSValue *, int)’ to ‘JSValue (*)(JSContext *, JSValue,  int,  JSValue *)’ [-Werror=cast-function-type]
 1052 |     return JS_NewCFunction2(ctx, (JSCFunction *)func, name, length, cproto, magic);
      |                                  ^
cc1: all warnings being treated as errors
@xeioex xeioex force-pushed the fix_cast_function_type_error branch from c40ba7d to 422e21d Compare August 26, 2025 00:07
@bellard
Copy link
Owner

bellard commented Aug 27, 2025

Thank you. I commited a more generic patch.

@bellard bellard closed this Aug 27, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

2 participants