Hi, I maintain a package on CRAN (valr) and recently submitted a new version. The package is failing CRAN pre-test checks due to the warning below from the clang-san test. The cleancall.c file referenced in the warning isn't in valr's source code, nor direct dependencies, but eventually I believe tracks back to the purrr package. Does anyone have any advice for how to replicate or address this warning? Flavor: r-devel-linux-x86_64-debian-special-clang-san Check: Post-processing issues found for clang-san, Result: WARNING File: valr-Ex.Rout cleancall.c:110:46: runtime error: call to function cb_progress_done through pointer to incorrect function type 'void (*)(void *)' File: tests/testthat.Rout cleancall.c:110:46: runtime error: call to function cb_progress_done through pointer to incorrect function type 'void (*)(void *)' package source: https://github.com/rnabioco/valr pre-test artifacts: https://win-builder.r-project.org/incoming_pretest/valr_0.8.3_20250108_153335/specialChecks/clang-san / Thanks in advance, Kent
[R-pkg-devel] addressing a CRAN submission pre-test clang-san warning
3 messages · Kent Riemondy, Ivan Krylov
? Fri, 10 Jan 2025 07:45:00 -0700 Kent Riemondy <kent.riemondy at gmail.com> ?????:
cleancall.c:110:46: runtime error: call to function cb_progress_done through pointer to incorrect function type 'void (*)(void *)'
This is a (mostly harmless) error in the purrr package: https://stat.ethz.ch/pipermail/r-package-devel/2024q4/011230.html It has recently been reported to the package maintainers: https://github.com/tidyverse/purrr/issues/1157 Instead of casting the cb_progress_done function pointer to (void (*)(void*)), the function needs to accept (void*) and cast the argument to SEXP in the function body.
Best regards, Ivan
Ivan, Many thanks for the prompt and helpful response. I hadn't seen the previous r-package-devel message with the same error. I will explain this situation to CRAN which hopefully will allow valr to stay on CRAN while I work to get the suggested fix implemented in purrr. Thanks, Kent
On Fri, Jan 10, 2025 at 8:08?AM Ivan Krylov <ikrylov at disroot.org> wrote:
? Fri, 10 Jan 2025 07:45:00 -0700 Kent Riemondy <kent.riemondy at gmail.com> ?????:
cleancall.c:110:46: runtime error: call to function cb_progress_done through pointer to incorrect function type 'void (*)(void *)'
This is a (mostly harmless) error in the purrr package: https://stat.ethz.ch/pipermail/r-package-devel/2024q4/011230.html It has recently been reported to the package maintainers: https://github.com/tidyverse/purrr/issues/1157 Instead of casting the cb_progress_done function pointer to (void (*)(void*)), the function needs to accept (void*) and cast the argument to SEXP in the function body. -- Best regards, Ivan