Regressed by https://github.com/llvm/llvm-project/commit/11da1b53d8c
See also https://discourse.llvm.org/t/rfc-enabling-wstrict-prototypes-by-default-in-c/60521
meson.build has warning_level=3 adding -Wpedantic and enabling -Wstrict-prototypes.
Note, lavalauncher and wayout (sxmo) have similar errors.
$ export CC=clang CXX=clang++
$ meson setup /tmp/wlclock_build
$ meson compile -C /tmp/wlclock_build
[...]
src/output.c:22:18: error: a function declaration without a prototype is deprecated in all versions of C [-Werror,-Wstrict-prototypes]
static void noop () {}
^
void
src/wlclock.c:578:23: error: a function declaration without a prototype is deprecated in all versions of C [-Werror,-Wstrict-prototypes]
static void clock_run ()
^
void
https://pkg-status.freebsd.org/beefy18/data/main-amd64-default/p58633340e9ed_s5636590214/logs/errors/wlclock-1.0.1.log
What Clang suggests helps only partially:
src/output.c:68:14: error: incompatible function pointer types initializing 'void (*)(void *, struct wl_output *, int32_t, int32_t, int32_t, int32_t, int32_t, const char *, const char *, int32_t)' (aka 'void (*)(void *, struct wl_output *, int, int, int, int, int, const char *, const char *, int)') with an expression of type 'void (void)' [-Werror,-Wincompatible-function-pointer-types]
.geometry = noop,
^~~~
src/output.c:69:14: error: incompatible function pointer types initializing 'void (*)(void *, struct wl_output *, uint32_t, int32_t, int32_t, int32_t)' (aka 'void (*)(void *, struct wl_output *, unsigned int, int, int, int)') with an expression of type 'void (void)' [-Werror,-Wincompatible-function-pointer-types]
.mode = noop,
^~~~
src/output.c:86:22: error: incompatible function pointer types initializing 'void (*)(void *, struct zxdg_output_v1 *, int32_t, int32_t)' (aka 'void (*)(void *, struct zxdg_output_v1 *, int, int)') with an expression of type 'void (void)' [-Werror,-Wincompatible-function-pointer-types]
.logical_size = noop,
^~~~
src/output.c:87:22: error: incompatible function pointer types initializing 'void (*)(void *, struct zxdg_output_v1 *, int32_t, int32_t)' (aka 'void (*)(void *, struct zxdg_output_v1 *, int, int)') with an expression of type 'void (void)' [-Werror,-Wincompatible-function-pointer-types]
.logical_position = noop,
^~~~
src/output.c:88:22: error: incompatible function pointer types initializing 'void (*)(void *, struct zxdg_output_v1 *, const char *)' with an expression of type 'void (void)' [-Werror,-Wincompatible-function-pointer-types]
.description = noop,
^~~~
src/output.c:91:22: error: incompatible function pointer types initializing 'void (*)(void *, struct zxdg_output_v1 *)' with an expression of type 'void (void)' [-Werror,-Wincompatible-function-pointer-types]
.done = noop
^~~~