* installing *source* package ‘RStoolbox’ ... ** using staged installation ** libs using C compiler: ‘Debian clang version 19.1.3 (2)’ using C++ compiler: ‘Debian clang version 19.1.3 (2)’ clang++-19 -std=gnu++17 -I"/home/hornik/tmp/R-d-clang-19/include" -DNDEBUG -I'/home/hornik/lib/R/Library/4.5/x86_64-linux-gnu/Rcpp/include' -I'/home/hornik/lib/R/Library/4.5/x86_64-linux-gnu/RcppArmadillo/include' -I/usr/local/include -DUSE_TYPE_CHECKING_STRICT -D_FORTIFY_SOURCE=3 -fpic -g -O3 -Wall -pedantic -DR_NO_REMAP -c RcppExports.cpp -o RcppExports.o clang++-19 -std=gnu++17 -I"/home/hornik/tmp/R-d-clang-19/include" -DNDEBUG -I'/home/hornik/lib/R/Library/4.5/x86_64-linux-gnu/Rcpp/include' -I'/home/hornik/lib/R/Library/4.5/x86_64-linux-gnu/RcppArmadillo/include' -I/usr/local/include -DUSE_TYPE_CHECKING_STRICT -D_FORTIFY_SOURCE=3 -fpic -g -O3 -Wall -pedantic -DR_NO_REMAP -c classQA.cpp -o classQA.o clang++-19 -std=gnu++17 -I"/home/hornik/tmp/R-d-clang-19/include" -DNDEBUG -I'/home/hornik/lib/R/Library/4.5/x86_64-linux-gnu/Rcpp/include' -I'/home/hornik/lib/R/Library/4.5/x86_64-linux-gnu/RcppArmadillo/include' -I/usr/local/include -DUSE_TYPE_CHECKING_STRICT -D_FORTIFY_SOURCE=3 -fpic -g -O3 -Wall -pedantic -DR_NO_REMAP -c entropy.cpp -o entropy.o clang++-19 -std=gnu++17 -I"/home/hornik/tmp/R-d-clang-19/include" -DNDEBUG -I'/home/hornik/lib/R/Library/4.5/x86_64-linux-gnu/Rcpp/include' -I'/home/hornik/lib/R/Library/4.5/x86_64-linux-gnu/RcppArmadillo/include' -I/usr/local/include -DUSE_TYPE_CHECKING_STRICT -D_FORTIFY_SOURCE=3 -fpic -g -O3 -Wall -pedantic -DR_NO_REMAP -c gainOffsetRescale.cpp -o gainOffsetRescale.o clang-19 -I"/home/hornik/tmp/R-d-clang-19/include" -DNDEBUG -I'/home/hornik/lib/R/Library/4.5/x86_64-linux-gnu/Rcpp/include' -I'/home/hornik/lib/R/Library/4.5/x86_64-linux-gnu/RcppArmadillo/include' -I/usr/local/include -DUSE_TYPE_CHECKING_STRICT -D_FORTIFY_SOURCE=3 -fpic -g -O3 -Wall -pedantic -c init.c -o init.o clang++-19 -std=gnu++17 -I"/home/hornik/tmp/R-d-clang-19/include" -DNDEBUG -I'/home/hornik/lib/R/Library/4.5/x86_64-linux-gnu/Rcpp/include' -I'/home/hornik/lib/R/Library/4.5/x86_64-linux-gnu/RcppArmadillo/include' -I/usr/local/include -DUSE_TYPE_CHECKING_STRICT -D_FORTIFY_SOURCE=3 -fpic -g -O3 -Wall -pedantic -DR_NO_REMAP -c memory.cpp -o memory.o clang++-19 -std=gnu++17 -I"/home/hornik/tmp/R-d-clang-19/include" -DNDEBUG -I'/home/hornik/lib/R/Library/4.5/x86_64-linux-gnu/Rcpp/include' -I'/home/hornik/lib/R/Library/4.5/x86_64-linux-gnu/RcppArmadillo/include' -I/usr/local/include -DUSE_TYPE_CHECKING_STRICT -D_FORTIFY_SOURCE=3 -fpic -g -O3 -Wall -pedantic -DR_NO_REMAP -c nnls_solver.cpp -o nnls_solver.o clang++-19 -std=gnu++17 -I"/home/hornik/tmp/R-d-clang-19/include" -DNDEBUG -I'/home/hornik/lib/R/Library/4.5/x86_64-linux-gnu/Rcpp/include' -I'/home/hornik/lib/R/Library/4.5/x86_64-linux-gnu/RcppArmadillo/include' -I/usr/local/include -DUSE_TYPE_CHECKING_STRICT -D_FORTIFY_SOURCE=3 -fpic -g -O3 -Wall -pedantic -DR_NO_REMAP -c normImage.cpp -o normImage.o clang++-19 -std=gnu++17 -I"/home/hornik/tmp/R-d-clang-19/include" -DNDEBUG -I'/home/hornik/lib/R/Library/4.5/x86_64-linux-gnu/Rcpp/include' -I'/home/hornik/lib/R/Library/4.5/x86_64-linux-gnu/RcppArmadillo/include' -I/usr/local/include -DUSE_TYPE_CHECKING_STRICT -D_FORTIFY_SOURCE=3 -fpic -g -O3 -Wall -pedantic -DR_NO_REMAP -c oneHot.cpp -o oneHot.o clang++-19 -std=gnu++17 -I"/home/hornik/tmp/R-d-clang-19/include" -DNDEBUG -I'/home/hornik/lib/R/Library/4.5/x86_64-linux-gnu/Rcpp/include' -I'/home/hornik/lib/R/Library/4.5/x86_64-linux-gnu/RcppArmadillo/include' -I/usr/local/include -DUSE_TYPE_CHECKING_STRICT -D_FORTIFY_SOURCE=3 -fpic -g -O3 -Wall -pedantic -DR_NO_REMAP -c predictKmeans.cpp -o predictKmeans.o clang++-19 -std=gnu++17 -I"/home/hornik/tmp/R-d-clang-19/include" -DNDEBUG -I'/home/hornik/lib/R/Library/4.5/x86_64-linux-gnu/Rcpp/include' -I'/home/hornik/lib/R/Library/4.5/x86_64-linux-gnu/RcppArmadillo/include' -I/usr/local/include -DUSE_TYPE_CHECKING_STRICT -D_FORTIFY_SOURCE=3 -fpic -g -O3 -Wall -pedantic -DR_NO_REMAP -c predictMlc.cpp -o predictMlc.o clang++-19 -std=gnu++17 -I"/home/hornik/tmp/R-d-clang-19/include" -DNDEBUG -I'/home/hornik/lib/R/Library/4.5/x86_64-linux-gnu/Rcpp/include' -I'/home/hornik/lib/R/Library/4.5/x86_64-linux-gnu/RcppArmadillo/include' -I/usr/local/include -DUSE_TYPE_CHECKING_STRICT -D_FORTIFY_SOURCE=3 -fpic -g -O3 -Wall -pedantic -DR_NO_REMAP -c pwSimilarity.cpp -o pwSimilarity.o clang++-19 -std=gnu++17 -I"/home/hornik/tmp/R-d-clang-19/include" -DNDEBUG -I'/home/hornik/lib/R/Library/4.5/x86_64-linux-gnu/Rcpp/include' -I'/home/hornik/lib/R/Library/4.5/x86_64-linux-gnu/RcppArmadillo/include' -I/usr/local/include -DUSE_TYPE_CHECKING_STRICT -D_FORTIFY_SOURCE=3 -fpic -g -O3 -Wall -pedantic -DR_NO_REMAP -c rescaleImage.cpp -o rescaleImage.o clang++-19 -std=gnu++17 -I"/home/hornik/tmp/R-d-clang-19/include" -DNDEBUG -I'/home/hornik/lib/R/Library/4.5/x86_64-linux-gnu/Rcpp/include' -I'/home/hornik/lib/R/Library/4.5/x86_64-linux-gnu/RcppArmadillo/include' -I/usr/local/include -DUSE_TYPE_CHECKING_STRICT -D_FORTIFY_SOURCE=3 -fpic -g -O3 -Wall -pedantic -DR_NO_REMAP -c sam.cpp -o sam.o clang++-19 -std=gnu++17 -I"/home/hornik/tmp/R-d-clang-19/include" -DNDEBUG -I'/home/hornik/lib/R/Library/4.5/x86_64-linux-gnu/Rcpp/include' -I'/home/hornik/lib/R/Library/4.5/x86_64-linux-gnu/RcppArmadillo/include' -I/usr/local/include -DUSE_TYPE_CHECKING_STRICT -D_FORTIFY_SOURCE=3 -fpic -g -O3 -Wall -pedantic -DR_NO_REMAP -c spectralIndices.cpp -o spectralIndices.o In file included from spectralIndices.cpp:4: ./tinyexpr.h:39:11: warning: flexible array members are a C99 feature [-Wc99-extensions] 39 | void *parameters[]; | ^ 1 warning generated. clang-19 -I"/home/hornik/tmp/R-d-clang-19/include" -DNDEBUG -I'/home/hornik/lib/R/Library/4.5/x86_64-linux-gnu/Rcpp/include' -I'/home/hornik/lib/R/Library/4.5/x86_64-linux-gnu/RcppArmadillo/include' -I/usr/local/include -DUSE_TYPE_CHECKING_STRICT -D_FORTIFY_SOURCE=3 -fpic -g -O3 -Wall -pedantic -c tinyexpr.c -o tinyexpr.o tinyexpr.c:94:19: warning: passing no argument for the '...' parameter of a variadic macro is a C23 extension [-Wc23-extensions] 94 | CHECK_NULL(ret); | ^ tinyexpr.c:86:9: note: macro 'CHECK_NULL' defined here 86 | #define CHECK_NULL(ptr, ...) if ((ptr) == NULL) { __VA_ARGS__; return NULL; } | ^ tinyexpr.c:166:13: warning: initializing 'const void *' with an expression of type 'double (double)' converts between void pointer and function pointer [-Wpedantic] 166 | {"abs", fabs, TE_FUNCTION1 | TE_FLAG_PURE, 0}, | ^~~~ tinyexpr.c:167:14: warning: initializing 'const void *' with an expression of type 'double (double)' converts between void pointer and function pointer [-Wpedantic] 167 | {"acos", acos, TE_FUNCTION1 | TE_FLAG_PURE, 0}, | ^~~~ tinyexpr.c:168:14: warning: initializing 'const void *' with an expression of type 'double (double)' converts between void pointer and function pointer [-Wpedantic] 168 | {"asin", asin, TE_FUNCTION1 | TE_FLAG_PURE, 0}, | ^~~~ tinyexpr.c:169:14: warning: initializing 'const void *' with an expression of type 'double (double)' converts between void pointer and function pointer [-Wpedantic] 169 | {"atan", atan, TE_FUNCTION1 | TE_FLAG_PURE, 0}, | ^~~~ tinyexpr.c:170:15: warning: initializing 'const void *' with an expression of type 'double (double, double)' converts between void pointer and function pointer [-Wpedantic] 170 | {"atan2", atan2, TE_FUNCTION2 | TE_FLAG_PURE, 0}, | ^~~~~ tinyexpr.c:171:14: warning: initializing 'const void *' with an expression of type 'double (double)' converts between void pointer and function pointer [-Wpedantic] 171 | {"ceil", ceil, TE_FUNCTION1 | TE_FLAG_PURE, 0}, | ^~~~ tinyexpr.c:172:13: warning: initializing 'const void *' with an expression of type 'double (double)' converts between void pointer and function pointer [-Wpedantic] 172 | {"cos", cos, TE_FUNCTION1 | TE_FLAG_PURE, 0}, | ^~~ tinyexpr.c:173:14: warning: initializing 'const void *' with an expression of type 'double (double)' converts between void pointer and function pointer [-Wpedantic] 173 | {"cosh", cosh, TE_FUNCTION1 | TE_FLAG_PURE, 0}, | ^~~~ tinyexpr.c:174:11: warning: initializing 'const void *' with an expression of type 'double (void)' converts between void pointer and function pointer [-Wpedantic] 174 | {"e", e, TE_FUNCTION0 | TE_FLAG_PURE, 0}, | ^ tinyexpr.c:175:13: warning: initializing 'const void *' with an expression of type 'double (double)' converts between void pointer and function pointer [-Wpedantic] 175 | {"exp", exp, TE_FUNCTION1 | TE_FLAG_PURE, 0}, | ^~~ tinyexpr.c:176:13: warning: initializing 'const void *' with an expression of type 'double (double)' converts between void pointer and function pointer [-Wpedantic] 176 | {"fac", fac, TE_FUNCTION1 | TE_FLAG_PURE, 0}, | ^~~ tinyexpr.c:177:15: warning: initializing 'const void *' with an expression of type 'double (double)' converts between void pointer and function pointer [-Wpedantic] 177 | {"floor", floor, TE_FUNCTION1 | TE_FLAG_PURE, 0}, | ^~~~~ tinyexpr.c:178:12: warning: initializing 'const void *' with an expression of type 'double (double)' converts between void pointer and function pointer [-Wpedantic] 178 | {"ln", log, TE_FUNCTION1 | TE_FLAG_PURE, 0}, | ^~~ tinyexpr.c:182:13: warning: initializing 'const void *' with an expression of type 'double (double)' converts between void pointer and function pointer [-Wpedantic] 182 | {"log", log10, TE_FUNCTION1 | TE_FLAG_PURE, 0}, | ^~~~~ tinyexpr.c:184:15: warning: initializing 'const void *' with an expression of type 'double (double)' converts between void pointer and function pointer [-Wpedantic] 184 | {"log10", log10, TE_FUNCTION1 | TE_FLAG_PURE, 0}, | ^~~~~ tinyexpr.c:185:13: warning: initializing 'const void *' with an expression of type 'double (double, double)' converts between void pointer and function pointer [-Wpedantic] 185 | {"ncr", ncr, TE_FUNCTION2 | TE_FLAG_PURE, 0}, | ^~~ tinyexpr.c:186:13: warning: initializing 'const void *' with an expression of type 'double (double, double)' converts between void pointer and function pointer [-Wpedantic] 186 | {"npr", npr, TE_FUNCTION2 | TE_FLAG_PURE, 0}, | ^~~ tinyexpr.c:187:12: warning: initializing 'const void *' with an expression of type 'double (void)' converts between void pointer and function pointer [-Wpedantic] 187 | {"pi", pi, TE_FUNCTION0 | TE_FLAG_PURE, 0}, | ^~ tinyexpr.c:188:13: warning: initializing 'const void *' with an expression of type 'double (double, double)' converts between void pointer and function pointer [-Wpedantic] 188 | {"pow", pow, TE_FUNCTION2 | TE_FLAG_PURE, 0}, | ^~~ tinyexpr.c:189:13: warning: initializing 'const void *' with an expression of type 'double (double)' converts between void pointer and function pointer [-Wpedantic] 189 | {"sin", sin, TE_FUNCTION1 | TE_FLAG_PURE, 0}, | ^~~ tinyexpr.c:190:14: warning: initializing 'const void *' with an expression of type 'double (double)' converts between void pointer and function pointer [-Wpedantic] 190 | {"sinh", sinh, TE_FUNCTION1 | TE_FLAG_PURE, 0}, | ^~~~ tinyexpr.c:191:14: warning: initializing 'const void *' with an expression of type 'double (double)' converts between void pointer and function pointer [-Wpedantic] 191 | {"sqrt", sqrt, TE_FUNCTION1 | TE_FLAG_PURE, 0}, | ^~~~ tinyexpr.c:192:13: warning: initializing 'const void *' with an expression of type 'double (double)' converts between void pointer and function pointer [-Wpedantic] 192 | {"tan", tan, TE_FUNCTION1 | TE_FLAG_PURE, 0}, | ^~~ tinyexpr.c:193:14: warning: initializing 'const void *' with an expression of type 'double (double)' converts between void pointer and function pointer [-Wpedantic] 193 | {"tanh", tanh, TE_FUNCTION1 | TE_FLAG_PURE, 0}, | ^~~~ tinyexpr.c:290:64: warning: assigning to 'const void *' from 'double (double, double)' converts between void pointer and function pointer [-Wpedantic] 290 | case '+': s->type = TOK_INFIX; s->function = add; break; | ^ ~~~ tinyexpr.c:291:64: warning: assigning to 'const void *' from 'double (double, double)' converts between void pointer and function pointer [-Wpedantic] 291 | case '-': s->type = TOK_INFIX; s->function = sub; break; | ^ ~~~ tinyexpr.c:292:64: warning: assigning to 'const void *' from 'double (double, double)' converts between void pointer and function pointer [-Wpedantic] 292 | case '*': s->type = TOK_INFIX; s->function = mul; break; | ^ ~~~ tinyexpr.c:293:64: warning: assigning to 'const void *' from 'double (double, double)' converts between void pointer and function pointer [-Wpedantic] 293 | case '/': s->type = TOK_INFIX; s->function = divide; break; | ^ ~~~~~~ tinyexpr.c:294:64: warning: assigning to 'const void *' from 'double (double, double)' converts between void pointer and function pointer [-Wpedantic] 294 | case '^': s->type = TOK_INFIX; s->function = pow; break; | ^ ~~~ tinyexpr.c:295:64: warning: assigning to 'const void *' from 'double (double, double)' converts between void pointer and function pointer [-Wpedantic] 295 | case '%': s->type = TOK_INFIX; s->function = fmod; break; | ^ ~~~~ tinyexpr.c:320:27: warning: passing no argument for the '...' parameter of a variadic macro is a C23 extension [-Wc23-extensions] 320 | CHECK_NULL(ret); | ^ tinyexpr.c:86:9: note: macro 'CHECK_NULL' defined here 86 | #define CHECK_NULL(ptr, ...) if ((ptr) == NULL) { __VA_ARGS__; return NULL; } | ^ tinyexpr.c:328:27: warning: passing no argument for the '...' parameter of a variadic macro is a C23 extension [-Wc23-extensions] 328 | CHECK_NULL(ret); | ^ tinyexpr.c:86:9: note: macro 'CHECK_NULL' defined here 86 | #define CHECK_NULL(ptr, ...) if ((ptr) == NULL) { __VA_ARGS__; return NULL; } | ^ tinyexpr.c:337:27: warning: passing no argument for the '...' parameter of a variadic macro is a C23 extension [-Wc23-extensions] 337 | CHECK_NULL(ret); | ^ tinyexpr.c:86:9: note: macro 'CHECK_NULL' defined here 86 | #define CHECK_NULL(ptr, ...) if ((ptr) == NULL) { __VA_ARGS__; return NULL; } | ^ tinyexpr.c:355:27: warning: passing no argument for the '...' parameter of a variadic macro is a C23 extension [-Wc23-extensions] 355 | CHECK_NULL(ret); | ^ tinyexpr.c:86:9: note: macro 'CHECK_NULL' defined here 86 | #define CHECK_NULL(ptr, ...) if ((ptr) == NULL) { __VA_ARGS__; return NULL; } | ^ tinyexpr.c:371:27: warning: passing no argument for the '...' parameter of a variadic macro is a C23 extension [-Wc23-extensions] 371 | CHECK_NULL(ret); | ^ tinyexpr.c:86:9: note: macro 'CHECK_NULL' defined here 86 | #define CHECK_NULL(ptr, ...) if ((ptr) == NULL) { __VA_ARGS__; return NULL; } | ^ tinyexpr.c:402:27: warning: passing no argument for the '...' parameter of a variadic macro is a C23 extension [-Wc23-extensions] 402 | CHECK_NULL(ret); | ^ tinyexpr.c:86:9: note: macro 'CHECK_NULL' defined here 86 | #define CHECK_NULL(ptr, ...) if ((ptr) == NULL) { __VA_ARGS__; return NULL; } | ^ tinyexpr.c:413:27: warning: passing no argument for the '...' parameter of a variadic macro is a C23 extension [-Wc23-extensions] 413 | CHECK_NULL(ret); | ^ tinyexpr.c:86:9: note: macro 'CHECK_NULL' defined here 86 | #define CHECK_NULL(ptr, ...) if ((ptr) == NULL) { __VA_ARGS__; return NULL; } | ^ tinyexpr.c:427:49: warning: equality comparison between function pointer and void pointer ('const void *' and 'double (*)(double, double)') [-Wpedantic] 427 | while (s->type == TOK_INFIX && (s->function == add || s->function == sub)) { | ~~~~~~~~~~~ ^ ~~~ tinyexpr.c:427:71: warning: equality comparison between function pointer and void pointer ('const void *' and 'double (*)(double, double)') [-Wpedantic] 427 | while (s->type == TOK_INFIX && (s->function == add || s->function == sub)) { | ~~~~~~~~~~~ ^ ~~~ tinyexpr.c:428:25: warning: equality comparison between function pointer and void pointer ('const void *' and 'double (*)(double, double)') [-Wpedantic] 428 | if (s->function == sub) sign = -sign; | ~~~~~~~~~~~ ^ ~~~ tinyexpr.c:438:21: warning: passing no argument for the '...' parameter of a variadic macro is a C23 extension [-Wc23-extensions] 438 | CHECK_NULL(b); | ^ tinyexpr.c:86:9: note: macro 'CHECK_NULL' defined here 86 | #define CHECK_NULL(ptr, ...) if ((ptr) == NULL) { __VA_ARGS__; return NULL; } | ^ tinyexpr.c:443:23: warning: assigning to 'const void *' from 'double (double)' converts between void pointer and function pointer [-Wpedantic] 443 | ret->function = negate; | ^ ~~~~~~ tinyexpr.c:508:19: warning: passing no argument for the '...' parameter of a variadic macro is a C23 extension [-Wc23-extensions] 508 | CHECK_NULL(ret); | ^ tinyexpr.c:86:9: note: macro 'CHECK_NULL' defined here 86 | #define CHECK_NULL(ptr, ...) if ((ptr) == NULL) { __VA_ARGS__; return NULL; } | ^ tinyexpr.c:510:49: warning: equality comparison between function pointer and void pointer ('const void *' and 'double (*)(double, double)') [-Wpedantic] 510 | while (s->type == TOK_INFIX && (s->function == pow)) { | ~~~~~~~~~~~ ^ ~~~ tinyexpr.c:511:17: warning: initializing 'te_fun2' (aka 'double (*)(double, double)') with an expression of type 'const void *' converts between void pointer and function pointer [-Wpedantic] 511 | te_fun2 t = s->function; | ^ ~~~~~~~~~~~ tinyexpr.c:520:23: warning: assigning to 'const void *' from 'te_fun2' (aka 'double (*)(double, double)') converts between void pointer and function pointer [-Wpedantic] 520 | ret->function = t; | ^ ~ tinyexpr.c:532:19: warning: passing no argument for the '...' parameter of a variadic macro is a C23 extension [-Wc23-extensions] 532 | CHECK_NULL(ret); | ^ tinyexpr.c:86:9: note: macro 'CHECK_NULL' defined here 86 | #define CHECK_NULL(ptr, ...) if ((ptr) == NULL) { __VA_ARGS__; return NULL; } | ^ tinyexpr.c:534:49: warning: equality comparison between function pointer and void pointer ('const void *' and 'double (*)(double, double)') [-Wpedantic] 534 | while (s->type == TOK_INFIX && (s->function == mul || s->function == divide || s->function == fmod)) { | ~~~~~~~~~~~ ^ ~~~ tinyexpr.c:534:71: warning: equality comparison between function pointer and void pointer ('const void *' and 'double (*)(double, double)') [-Wpedantic] 534 | while (s->type == TOK_INFIX && (s->function == mul || s->function == divide || s->function == fmod)) { | ~~~~~~~~~~~ ^ ~~~~~~ tinyexpr.c:534:96: warning: equality comparison between function pointer and void pointer ('const void *' and 'double (*)(double, double)') [-Wpedantic] 534 | while (s->type == TOK_INFIX && (s->function == mul || s->function == divide || s->function == fmod)) { | ~~~~~~~~~~~ ^ ~~~~ tinyexpr.c:535:17: warning: initializing 'te_fun2' (aka 'double (*)(double, double)') with an expression of type 'const void *' converts between void pointer and function pointer [-Wpedantic] 535 | te_fun2 t = s->function; | ^ ~~~~~~~~~~~ tinyexpr.c:544:23: warning: assigning to 'const void *' from 'te_fun2' (aka 'double (*)(double, double)') converts between void pointer and function pointer [-Wpedantic] 544 | ret->function = t; | ^ ~ tinyexpr.c:554:19: warning: passing no argument for the '...' parameter of a variadic macro is a C23 extension [-Wc23-extensions] 554 | CHECK_NULL(ret); | ^ tinyexpr.c:86:9: note: macro 'CHECK_NULL' defined here 86 | #define CHECK_NULL(ptr, ...) if ((ptr) == NULL) { __VA_ARGS__; return NULL; } | ^ tinyexpr.c:556:49: warning: equality comparison between function pointer and void pointer ('const void *' and 'double (*)(double, double)') [-Wpedantic] 556 | while (s->type == TOK_INFIX && (s->function == add || s->function == sub)) { | ~~~~~~~~~~~ ^ ~~~ tinyexpr.c:556:71: warning: equality comparison between function pointer and void pointer ('const void *' and 'double (*)(double, double)') [-Wpedantic] 556 | while (s->type == TOK_INFIX && (s->function == add || s->function == sub)) { | ~~~~~~~~~~~ ^ ~~~ tinyexpr.c:557:17: warning: initializing 'te_fun2' (aka 'double (*)(double, double)') with an expression of type 'const void *' converts between void pointer and function pointer [-Wpedantic] 557 | te_fun2 t = s->function; | ^ ~~~~~~~~~~~ tinyexpr.c:566:23: warning: assigning to 'const void *' from 'te_fun2' (aka 'double (*)(double, double)') converts between void pointer and function pointer [-Wpedantic] 566 | ret->function = t; | ^ ~ tinyexpr.c:576:19: warning: passing no argument for the '...' parameter of a variadic macro is a C23 extension [-Wc23-extensions] 576 | CHECK_NULL(ret); | ^ tinyexpr.c:86:9: note: macro 'CHECK_NULL' defined here 86 | #define CHECK_NULL(ptr, ...) if ((ptr) == NULL) { __VA_ARGS__; return NULL; } | ^ tinyexpr.c:587:23: warning: assigning to 'const void *' from 'double (double, double)' converts between void pointer and function pointer [-Wpedantic] 587 | ret->function = comma; | ^ ~~~~~ 60 warnings generated. clang++-19 -std=gnu++17 -shared -L/home/hornik/tmp/R-d-clang-19/lib -Wl,-O1 -o RStoolbox.so RcppExports.o classQA.o entropy.o gainOffsetRescale.o init.o memory.o nnls_solver.o normImage.o oneHot.o predictKmeans.o predictMlc.o pwSimilarity.o rescaleImage.o sam.o spectralIndices.o tinyexpr.o -llapack -L/home/hornik/tmp/R-d-clang-19/lib -lRblas -L/usr/lib/llvm-19/lib -lFortranRuntime -lFortranDecimal -lm -L/home/hornik/tmp/R-d-clang-19/lib -lR installing to /srv/hornik/tmp/CRAN_pretest/RStoolbox.Rcheck/00LOCK-RStoolbox/00new/RStoolbox/libs ** R ** inst ** byte-compile and prepare package for lazy loading ** help *** installing help indices *** copying figures ** building package indices ** testing if installed package can be loaded from temporary location ** checking absolute paths in shared objects and dynamic libraries ** testing if installed package can be loaded from final location ** testing if installed package keeps a record of temporary installation path * DONE (RStoolbox)