fixed building with gcc and clang >= 19 and -Wextra -Werror flags #435
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
$ 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