Skip to content

-Wpedantic warnings: converts between void pointer and function pointer #5051

Description

@jeroen

Compiling libuv-v1.52.1 with CC = clang -Wall -pedantic on MacOS I get:

/Users/jeroen/workspace/fs.Rcheck/00_pkg_src/fs/src/libuv-v1.52.1/src/uv-common.c:960:14: warning: passing 'const char *' to parameter of type 'void *' discards qualifiers [-Wincompatible-pointer-types-discards-qualifiers]
  960 |     uv__free(cpu_infos[i].model);
      |              ^~~~~~~~~~~~~~~~~~
/Users/jeroen/workspace/fs.Rcheck/00_pkg_src/fs/src/libuv-v1.52.1/src/uv-common.c:81:21: note: passing argument to parameter 'ptr' here
   81 | void uv__free(void* ptr) {
      |                     ^
1 warning generated.
/Users/jeroen/workspace/fs.Rcheck/00_pkg_src/fs/src/libuv-v1.52.1/src/unix/fs.c:478:9: warning: assigning to 'void *' from 'ssize_t (*)(int, const struct iovec *, uv__iovcnt, off_t)' (aka 'long (*)(int, const struct iovec *, unsigned long, long long)') converts between void pointer and function pointer [-Wpedantic]
  478 |       p = is_pread ? uv__preadv_emul : uv__pwritev_emul;
      |         ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/jeroen/workspace/fs.Rcheck/00_pkg_src/fs/src/libuv-v1.52.1/src/unix/fs.c:482:5: warning: assigning to 'ssize_t (*)(int, const struct iovec *, uv__iovcnt, off_t)' (aka 'long (*)(int, const struct iovec *, unsigned long, long long)') from 'void *' converts between void pointer and function pointer [-Wpedantic]
  482 |   f = p;
      |     ^ ~
2 warnings generated.
/Users/jeroen/workspace/fs.Rcheck/00_pkg_src/fs/src/libuv-v1.52.1/src/unix/process.c:435:45: warning: assigning to 'int (*)(const posix_spawn_file_actions_t *, const char *)' (aka 'int (*)(void *const *, const char *)') from 'void *' converts between void pointer and function pointer [-Wpedantic]
  435 |   posix_spawn_fncs.file_actions.addchdir_np =
      |                                             ^
  436 |     dlsym(RTLD_DEFAULT, "posix_spawn_file_actions_addchdir_np");
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1 warning generated.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions