* installing to library ‘/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages’
* installing *source* package ‘data.table’ ...
** package ‘data.table’ successfully unpacked and MD5 sums checked
** using staged installation
zlib 1.2.13 is available ok
R CMD SHLIB supports OpenMP without any extra hint
** libs
using C compiler: ‘Debian clang version 17.0.5 (1)’
make[1]: Entering directory '/tmp/RtmpVhwrWA/R.INSTALL224ed86af594d/data.table/src'
clang-17 -I"/home/hornik/tmp/R.check/r-devel-clang/Work/build/include" -DNDEBUG   -I/usr/local/include -D_FORTIFY_SOURCE=3  -fopenmp  -fpic  -g -O3 -Wall -pedantic -c assign.c -o assign.o
assign.c:470:83: warning: format specifies type 'int' but the argument has type 'R_xlen_t' (aka 'long') [-Wformat]
  470 |       error(_("Internal error: selfrefnames is ok but tl names [%d] != tl [%d]"), TRUELENGTH(names), oldtncol);  // # nocov
      |                                                                 ~~                ^~~~~~~~~~~~~~~~~
      |                                                                 %td
assign.c:518:22: warning: format string is not a string literal (potentially insecure) [-Wformat-security]
  518 |     if (ret) warning(ret);
      |                      ^~~
assign.c:518:22: note: treat the string as an argument to avoid this
  518 |     if (ret) warning(ret);
      |                      ^
      |                      "%s", 
assign.c:650:35: warning: more '%' conversions than data arguments [-Wformat-insufficient-args]
  650 |         error(_("Internal error: %d column numbers to delete not now in strictly increasing order. No-dups were checked earlier.")); // # nocov
      |                                  ~^
./po.h:3:42: note: expanded from macro '_'
    3 | #define _(String) dgettext("data.table", String)
      |                                          ^~~~~~
/usr/include/libintl.h:112:26: note: expanded from macro 'dgettext'
  112 |   dcgettext (domainname, msgid, LC_MESSAGES)
      |                          ^~~~~
assign.c:794:96: warning: format specifies type 'int' but the argument has type 'unsigned long' [-Wformat]
  794 |             error(_("Unable to allocate working memory of %d bytes to combine factor levels"), nAdd*sizeof(SEXP *));
      |                                                           ~~                                   ^~~~~~~~~~~~~~~~~~~
      |                                                           %lu
assign.c:1142:133: warning: format specifies type 'void *' but the argument has type 'SEXP *' (aka 'struct SEXPREC **') [-Wformat-pedantic]
 1142 |     error(_("Internal error: savetl_init checks failed (%d %d %p %p). please report to data.table issue tracker."), nsaved, nalloc, saveds, savedtl); // # nocov
      |                                                               ~~                                                                    ^~~~~~
assign.c:1142:141: warning: format specifies type 'void *' but the argument has type 'R_len_t *' (aka 'int *') [-Wformat-pedantic]
 1142 |     error(_("Internal error: savetl_init checks failed (%d %d %p %p). please report to data.table issue tracker."), nsaved, nalloc, saveds, savedtl); // # nocov
      |                                                                  ~~                                                                         ^~~~~~~
6 warnings generated.
clang-17 -I"/home/hornik/tmp/R.check/r-devel-clang/Work/build/include" -DNDEBUG   -I/usr/local/include -D_FORTIFY_SOURCE=3  -fopenmp  -fpic  -g -O3 -Wall -pedantic -c between.c -o between.o
clang-17 -I"/home/hornik/tmp/R.check/r-devel-clang/Work/build/include" -DNDEBUG   -I/usr/local/include -D_FORTIFY_SOURCE=3  -fopenmp  -fpic  -g -O3 -Wall -pedantic -c bmerge.c -o bmerge.o
clang-17 -I"/home/hornik/tmp/R.check/r-devel-clang/Work/build/include" -DNDEBUG   -I/usr/local/include -D_FORTIFY_SOURCE=3  -fopenmp  -fpic  -g -O3 -Wall -pedantic -c chmatch.c -o chmatch.o
clang-17 -I"/home/hornik/tmp/R.check/r-devel-clang/Work/build/include" -DNDEBUG   -I/usr/local/include -D_FORTIFY_SOURCE=3  -fopenmp  -fpic  -g -O3 -Wall -pedantic -c cj.c -o cj.o
clang-17 -I"/home/hornik/tmp/R.check/r-devel-clang/Work/build/include" -DNDEBUG   -I/usr/local/include -D_FORTIFY_SOURCE=3  -fopenmp  -fpic  -g -O3 -Wall -pedantic -c coalesce.c -o coalesce.o
clang-17 -I"/home/hornik/tmp/R.check/r-devel-clang/Work/build/include" -DNDEBUG   -I/usr/local/include -D_FORTIFY_SOURCE=3  -fopenmp  -fpic  -g -O3 -Wall -pedantic -c dogroups.c -o dogroups.o
clang-17 -I"/home/hornik/tmp/R.check/r-devel-clang/Work/build/include" -DNDEBUG   -I/usr/local/include -D_FORTIFY_SOURCE=3  -fopenmp  -fpic  -g -O3 -Wall -pedantic -c fastmean.c -o fastmean.o
clang-17 -I"/home/hornik/tmp/R.check/r-devel-clang/Work/build/include" -DNDEBUG   -I/usr/local/include -D_FORTIFY_SOURCE=3  -fopenmp  -fpic  -g -O3 -Wall -pedantic -c fcast.c -o fcast.o
clang-17 -I"/home/hornik/tmp/R.check/r-devel-clang/Work/build/include" -DNDEBUG   -I/usr/local/include -D_FORTIFY_SOURCE=3  -fopenmp  -fpic  -g -O3 -Wall -pedantic -c fifelse.c -o fifelse.o
clang-17 -I"/home/hornik/tmp/R.check/r-devel-clang/Work/build/include" -DNDEBUG   -I/usr/local/include -D_FORTIFY_SOURCE=3  -fopenmp  -fpic  -g -O3 -Wall -pedantic -c fmelt.c -o fmelt.o
clang-17 -I"/home/hornik/tmp/R.check/r-devel-clang/Work/build/include" -DNDEBUG   -I/usr/local/include -D_FORTIFY_SOURCE=3  -fopenmp  -fpic  -g -O3 -Wall -pedantic -c forder.c -o forder.o
forder.c:107:30: warning: format string is not a string literal (potentially insecure) [-Wformat-security]
  107 |     if (gs_thread[me]==NULL) STOP(_("Failed to realloc thread private group size buffer to %d*4bytes"), (int)gs_thread_alloc[me]);
      |                              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
forder.c:59:74: note: expanded from macro 'STOP'
   59 | #define STOP(...) do {snprintf(msg, 1000, __VA_ARGS__); cleanup(); error(msg);} while(0)      // http://gcc.gnu.org/onlinedocs/cpp/Swallowing-the-Semicolon.html#Swallowing-the-Semicolon
      |                                                                          ^~~
forder.c:107:30: note: treat the string as an argument to avoid this
forder.c:59:74: note: expanded from macro 'STOP'
   59 | #define STOP(...) do {snprintf(msg, 1000, __VA_ARGS__); cleanup(); error(msg);} while(0)      // http://gcc.gnu.org/onlinedocs/cpp/Swallowing-the-Semicolon.html#Swallowing-the-Semicolon
      |                                                                          ^
forder.c:121:19: warning: format string is not a string literal (potentially insecure) [-Wformat-security]
  121 |     if (gs==NULL) STOP(_("Failed to realloc group size result to %d*4bytes"), (int)gs_alloc);
      |                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
forder.c:59:74: note: expanded from macro 'STOP'
   59 | #define STOP(...) do {snprintf(msg, 1000, __VA_ARGS__); cleanup(); error(msg);} while(0)      // http://gcc.gnu.org/onlinedocs/cpp/Swallowing-the-Semicolon.html#Swallowing-the-Semicolon
      |                                                                          ^~~
forder.c:121:19: note: treat the string as an argument to avoid this
forder.c:59:74: note: expanded from macro 'STOP'
   59 | #define STOP(...) do {snprintf(msg, 1000, __VA_ARGS__); cleanup(); error(msg);} while(0)      // http://gcc.gnu.org/onlinedocs/cpp/Swallowing-the-Semicolon.html#Swallowing-the-Semicolon
      |                                                                          ^
forder.c:255:27: warning: format string is not a string literal (potentially insecure) [-Wformat-security]
  255 |   if (thiscounts[0] != 0) STOP(_("Logical error. counts[0]=%d in cradix but should have been decremented to 0. radix=%d"), thiscounts[0], radix);
      |                           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
forder.c:59:74: note: expanded from macro 'STOP'
   59 | #define STOP(...) do {snprintf(msg, 1000, __VA_ARGS__); cleanup(); error(msg);} while(0)      // http://gcc.gnu.org/onlinedocs/cpp/Swallowing-the-Semicolon.html#Swallowing-the-Semicolon
      |                                                                          ^~~
forder.c:255:27: note: treat the string as an argument to avoid this
forder.c:59:74: note: expanded from macro 'STOP'
   59 | #define STOP(...) do {snprintf(msg, 1000, __VA_ARGS__); cleanup(); error(msg);} while(0)      // http://gcc.gnu.org/onlinedocs/cpp/Swallowing-the-Semicolon.html#Swallowing-the-Semicolon
      |                                                                          ^
forder.c:270:23: warning: format string is not a string literal (potentially insecure) [-Wformat-security]
  270 |   if (!cradix_counts) STOP(_("Failed to alloc cradix_counts"));
      |                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
forder.c:59:74: note: expanded from macro 'STOP'
   59 | #define STOP(...) do {snprintf(msg, 1000, __VA_ARGS__); cleanup(); error(msg);} while(0)      // http://gcc.gnu.org/onlinedocs/cpp/Swallowing-the-Semicolon.html#Swallowing-the-Semicolon
      |                                                                          ^~~
forder.c:270:23: note: treat the string as an argument to avoid this
forder.c:59:74: note: expanded from macro 'STOP'
   59 | #define STOP(...) do {snprintf(msg, 1000, __VA_ARGS__); cleanup(); error(msg);} while(0)      // http://gcc.gnu.org/onlinedocs/cpp/Swallowing-the-Semicolon.html#Swallowing-the-Semicolon
      |                                                                          ^
forder.c:272:21: warning: format string is not a string literal (potentially insecure) [-Wformat-security]
  272 |   if (!cradix_xtmp) STOP(_("Failed to alloc cradix_tmp"));
      |                     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
forder.c:59:74: note: expanded from macro 'STOP'
   59 | #define STOP(...) do {snprintf(msg, 1000, __VA_ARGS__); cleanup(); error(msg);} while(0)      // http://gcc.gnu.org/onlinedocs/cpp/Swallowing-the-Semicolon.html#Swallowing-the-Semicolon
      |                                                                          ^~~
forder.c:272:21: note: treat the string as an argument to avoid this
forder.c:59:74: note: expanded from macro 'STOP'
   59 | #define STOP(...) do {snprintf(msg, 1000, __VA_ARGS__); cleanup(); error(msg);} while(0)      // http://gcc.gnu.org/onlinedocs/cpp/Swallowing-the-Semicolon.html#Swallowing-the-Semicolon
      |                                                                          ^
forder.c:283:18: warning: format string is not a string literal (potentially insecure) [-Wformat-security]
  283 |   if (ustr_n!=0) STOP(_("Internal error: ustr isn't empty when starting range_str: ustr_n=%d, ustr_alloc=%d"), ustr_n, ustr_alloc);  // # nocov
      |                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
forder.c:59:74: note: expanded from macro 'STOP'
   59 | #define STOP(...) do {snprintf(msg, 1000, __VA_ARGS__); cleanup(); error(msg);} while(0)      // http://gcc.gnu.org/onlinedocs/cpp/Swallowing-the-Semicolon.html#Swallowing-the-Semicolon
      |                                                                          ^~~
forder.c:283:18: note: treat the string as an argument to avoid this
forder.c:59:74: note: expanded from macro 'STOP'
   59 | #define STOP(...) do {snprintf(msg, 1000, __VA_ARGS__); cleanup(); error(msg);} while(0)      // http://gcc.gnu.org/onlinedocs/cpp/Swallowing-the-Semicolon.html#Swallowing-the-Semicolon
      |                                                                          ^
forder.c:284:23: warning: format string is not a string literal (potentially insecure) [-Wformat-security]
  284 |   if (ustr_maxlen!=0) STOP(_("Internal error: ustr_maxlen isn't 0 when starting range_str"));  // # nocov
      |                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
forder.c:59:74: note: expanded from macro 'STOP'
   59 | #define STOP(...) do {snprintf(msg, 1000, __VA_ARGS__); cleanup(); error(msg);} while(0)      // http://gcc.gnu.org/onlinedocs/cpp/Swallowing-the-Semicolon.html#Swallowing-the-Semicolon
      |                                                                          ^~~
forder.c:284:23: note: treat the string as an argument to avoid this
forder.c:59:74: note: expanded from macro 'STOP'
   59 | #define STOP(...) do {snprintf(msg, 1000, __VA_ARGS__); cleanup(); error(msg);} while(0)      // http://gcc.gnu.org/onlinedocs/cpp/Swallowing-the-Semicolon.html#Swallowing-the-Semicolon
      |                                                                          ^
forder.c:304:25: warning: format string is not a string literal (potentially insecure) [-Wformat-security]
  304 |         if (ustr==NULL) STOP(_("Unable to realloc %d * %d bytes in range_str"), ustr_alloc, (int)sizeof(SEXP));  // # nocov
      |                         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
forder.c:59:74: note: expanded from macro 'STOP'
   59 | #define STOP(...) do {snprintf(msg, 1000, __VA_ARGS__); cleanup(); error(msg);} while(0)      // http://gcc.gnu.org/onlinedocs/cpp/Swallowing-the-Semicolon.html#Swallowing-the-Semicolon
      |                                                                          ^~~
forder.c:304:25: note: treat the string as an argument to avoid this
forder.c:59:74: note: expanded from macro 'STOP'
   59 | #define STOP(...) do {snprintf(msg, 1000, __VA_ARGS__); cleanup(); error(msg);} while(0)      // http://gcc.gnu.org/onlinedocs/cpp/Swallowing-the-Semicolon.html#Swallowing-the-Semicolon
      |                                                                          ^
forder.c:322:17: warning: format string is not a string literal (potentially insecure) [-Wformat-security]
  322 |     if (!ustr3) STOP(_("Failed to alloc ustr3 when converting strings to UTF8"));  // # nocov
      |                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
forder.c:59:74: note: expanded from macro 'STOP'
   59 | #define STOP(...) do {snprintf(msg, 1000, __VA_ARGS__); cleanup(); error(msg);} while(0)      // http://gcc.gnu.org/onlinedocs/cpp/Swallowing-the-Semicolon.html#Swallowing-the-Semicolon
      |                                                                          ^~~
forder.c:322:17: note: treat the string as an argument to avoid this
forder.c:59:74: note: expanded from macro 'STOP'
   59 | #define STOP(...) do {snprintf(msg, 1000, __VA_ARGS__); cleanup(); error(msg);} while(0)      // http://gcc.gnu.org/onlinedocs/cpp/Swallowing-the-Semicolon.html#Swallowing-the-Semicolon
      |                                                                          ^
forder.c:340:14: warning: format string is not a string literal (potentially insecure) [-Wformat-security]
  340 |     if (!tl) STOP(_("Failed to alloc tl when converting strings to UTF8"));  // # nocov
      |              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
forder.c:59:74: note: expanded from macro 'STOP'
   59 | #define STOP(...) do {snprintf(msg, 1000, __VA_ARGS__); cleanup(); error(msg);} while(0)      // http://gcc.gnu.org/onlinedocs/cpp/Swallowing-the-Semicolon.html#Swallowing-the-Semicolon
      |                                                                          ^~~
forder.c:340:14: note: treat the string as an argument to avoid this
forder.c:59:74: note: expanded from macro 'STOP'
   59 | #define STOP(...) do {snprintf(msg, 1000, __VA_ARGS__); cleanup(); error(msg);} while(0)      // http://gcc.gnu.org/onlinedocs/cpp/Swallowing-the-Semicolon.html#Swallowing-the-Semicolon
      |                                                                          ^
forder.c:404:3: warning: format string is not a string literal (potentially insecure) [-Wformat-security]
  404 |   STOP(_("Unknown non-finite value; not NA, NaN, -Inf or +Inf"));  // # nocov
      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
forder.c:59:74: note: expanded from macro 'STOP'
   59 | #define STOP(...) do {snprintf(msg, 1000, __VA_ARGS__); cleanup(); error(msg);} while(0)      // http://gcc.gnu.org/onlinedocs/cpp/Swallowing-the-Semicolon.html#Swallowing-the-Semicolon
      |                                                                          ^~~
forder.c:404:3: note: treat the string as an argument to avoid this
forder.c:59:74: note: expanded from macro 'STOP'
   59 | #define STOP(...) do {snprintf(msg, 1000, __VA_ARGS__); cleanup(); error(msg);} while(0)      // http://gcc.gnu.org/onlinedocs/cpp/Swallowing-the-Semicolon.html#Swallowing-the-Semicolon
      |                                                                          ^
forder.c:426:7: warning: format string is not a string literal (potentially insecure) [-Wformat-security]
  426 |       STOP(_("Internal error: input is not either a list of columns, or an atomic vector."));  // # nocov; caught by colnamesInt at R level, test 1962.0472
      |       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
forder.c:59:74: note: expanded from macro 'STOP'
   59 | #define STOP(...) do {snprintf(msg, 1000, __VA_ARGS__); cleanup(); error(msg);} while(0)      // http://gcc.gnu.org/onlinedocs/cpp/Swallowing-the-Semicolon.html#Swallowing-the-Semicolon
      |                                                                          ^~~
forder.c:426:7: note: treat the string as an argument to avoid this
forder.c:59:74: note: expanded from macro 'STOP'
   59 | #define STOP(...) do {snprintf(msg, 1000, __VA_ARGS__); cleanup(); error(msg);} while(0)      // http://gcc.gnu.org/onlinedocs/cpp/Swallowing-the-Semicolon.html#Swallowing-the-Semicolon
      |                                                                          ^
forder.c:428:7: warning: format string is not a string literal (potentially insecure) [-Wformat-security]
  428 |       STOP(_("Internal error: input is an atomic vector (not a list of columns) but by= is not NULL"));  // # nocov; caught at R level, test 1962.043
      |       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
forder.c:59:74: note: expanded from macro 'STOP'
   59 | #define STOP(...) do {snprintf(msg, 1000, __VA_ARGS__); cleanup(); error(msg);} while(0)      // http://gcc.gnu.org/onlinedocs/cpp/Swallowing-the-Semicolon.html#Swallowing-the-Semicolon
      |                                                                          ^~~
forder.c:428:7: note: treat the string as an argument to avoid this
forder.c:59:74: note: expanded from macro 'STOP'
   59 | #define STOP(...) do {snprintf(msg, 1000, __VA_ARGS__); cleanup(); error(msg);} while(0)      // http://gcc.gnu.org/onlinedocs/cpp/Swallowing-the-Semicolon.html#Swallowing-the-Semicolon
      |                                                                          ^
forder.c:430:7: warning: format string is not a string literal (potentially insecure) [-Wformat-security]
  430 |       STOP(_("Input is an atomic vector (not a list of columns) but order= is not a length 1 integer"));
      |       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
forder.c:59:74: note: expanded from macro 'STOP'
   59 | #define STOP(...) do {snprintf(msg, 1000, __VA_ARGS__); cleanup(); error(msg);} while(0)      // http://gcc.gnu.org/onlinedocs/cpp/Swallowing-the-Semicolon.html#Swallowing-the-Semicolon
      |                                                                          ^~~
forder.c:430:7: note: treat the string as an argument to avoid this
forder.c:59:74: note: expanded from macro 'STOP'
   59 | #define STOP(...) do {snprintf(msg, 1000, __VA_ARGS__); cleanup(); error(msg);} while(0)      // http://gcc.gnu.org/onlinedocs/cpp/Swallowing-the-Semicolon.html#Swallowing-the-Semicolon
      |                                                                          ^
forder.c:443:5: warning: format string is not a string literal (potentially insecure) [-Wformat-security]
  443 |     STOP(_("Internal error: DT is an empty list() of 0 columns"));  // # nocov  should have been caught be colnamesInt, test 2099.1
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
forder.c:59:74: note: expanded from macro 'STOP'
   59 | #define STOP(...) do {snprintf(msg, 1000, __VA_ARGS__); cleanup(); error(msg);} while(0)      // http://gcc.gnu.org/onlinedocs/cpp/Swallowing-the-Semicolon.html#Swallowing-the-Semicolon
      |                                                                          ^~~
forder.c:443:5: note: treat the string as an argument to avoid this
forder.c:59:74: note: expanded from macro 'STOP'
   59 | #define STOP(...) do {snprintf(msg, 1000, __VA_ARGS__); cleanup(); error(msg);} while(0)      // http://gcc.gnu.org/onlinedocs/cpp/Swallowing-the-Semicolon.html#Swallowing-the-Semicolon
      |                                                                          ^
forder.c:445:5: warning: format string is not a string literal (potentially insecure) [-Wformat-security]
  445 |     STOP(_("Internal error: DT has %d columns but 'by' is either not integer or is length 0"), length(DT));  // # nocov  colnamesInt catches, 2099.2
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
forder.c:59:74: note: expanded from macro 'STOP'
   59 | #define STOP(...) do {snprintf(msg, 1000, __VA_ARGS__); cleanup(); error(msg);} while(0)      // http://gcc.gnu.org/onlinedocs/cpp/Swallowing-the-Semicolon.html#Swallowing-the-Semicolon
      |                                                                          ^~~
forder.c:445:5: note: treat the string as an argument to avoid this
forder.c:59:74: note: expanded from macro 'STOP'
   59 | #define STOP(...) do {snprintf(msg, 1000, __VA_ARGS__); cleanup(); error(msg);} while(0)      // http://gcc.gnu.org/onlinedocs/cpp/Swallowing-the-Semicolon.html#Swallowing-the-Semicolon
      |                                                                          ^
forder.c:447:5: warning: format string is not a string literal (potentially insecure) [-Wformat-security]
  447 |     STOP(_("Either order= is not integer or its length (%d) is different to by='s length (%d)"), LENGTH(ascArg), LENGTH(by));
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
forder.c:59:74: note: expanded from macro 'STOP'
   59 | #define STOP(...) do {snprintf(msg, 1000, __VA_ARGS__); cleanup(); error(msg);} while(0)      // http://gcc.gnu.org/onlinedocs/cpp/Swallowing-the-Semicolon.html#Swallowing-the-Semicolon
      |                                                                          ^~~
forder.c:447:5: note: treat the string as an argument to avoid this
forder.c:59:74: note: expanded from macro 'STOP'
   59 | #define STOP(...) do {snprintf(msg, 1000, __VA_ARGS__); cleanup(); error(msg);} while(0)      // http://gcc.gnu.org/onlinedocs/cpp/Swallowing-the-Semicolon.html#Swallowing-the-Semicolon
      |                                                                          ^
forder.c:453:7: warning: format string is not a string literal (potentially insecure) [-Wformat-security]
  453 |       STOP(_("internal error: 'by' value %d out of range [1,%d]"), by_i, length(DT)); // # nocov # R forderv already catch that using C colnamesInt
      |       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
forder.c:59:74: note: expanded from macro 'STOP'
   59 | #define STOP(...) do {snprintf(msg, 1000, __VA_ARGS__); cleanup(); error(msg);} while(0)      // http://gcc.gnu.org/onlinedocs/cpp/Swallowing-the-Semicolon.html#Swallowing-the-Semicolon
      |                                                                          ^~~
forder.c:453:7: note: treat the string as an argument to avoid this
forder.c:59:74: note: expanded from macro 'STOP'
   59 | #define STOP(...) do {snprintf(msg, 1000, __VA_ARGS__); cleanup(); error(msg);} while(0)      // http://gcc.gnu.org/onlinedocs/cpp/Swallowing-the-Semicolon.html#Swallowing-the-Semicolon
      |                                                                          ^
forder.c:455:7: warning: format string is not a string literal (potentially insecure) [-Wformat-security]
  455 |       STOP(_("Column %d is length %d which differs from length of column 1 (%d)\n"), INTEGER(by)[i], length(VECTOR_ELT(DT, INTEGER(by)[i]-1)), nrow);
      |       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
forder.c:59:74: note: expanded from macro 'STOP'
   59 | #define STOP(...) do {snprintf(msg, 1000, __VA_ARGS__); cleanup(); error(msg);} while(0)      // http://gcc.gnu.org/onlinedocs/cpp/Swallowing-the-Semicolon.html#Swallowing-the-Semicolon
      |                                                                          ^~~
forder.c:455:7: note: treat the string as an argument to avoid this
forder.c:59:74: note: expanded from macro 'STOP'
   59 | #define STOP(...) do {snprintf(msg, 1000, __VA_ARGS__); cleanup(); error(msg);} while(0)      // http://gcc.gnu.org/onlinedocs/cpp/Swallowing-the-Semicolon.html#Swallowing-the-Semicolon
      |                                                                          ^
forder.c:459:5: warning: format string is not a string literal (potentially insecure) [-Wformat-security]
  459 |     STOP(_("retGrp must be TRUE or FALSE"));
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
forder.c:59:74: note: expanded from macro 'STOP'
   59 | #define STOP(...) do {snprintf(msg, 1000, __VA_ARGS__); cleanup(); error(msg);} while(0)      // http://gcc.gnu.org/onlinedocs/cpp/Swallowing-the-Semicolon.html#Swallowing-the-Semicolon
      |                                                                          ^~~
forder.c:459:5: note: treat the string as an argument to avoid this
forder.c:59:74: note: expanded from macro 'STOP'
   59 | #define STOP(...) do {snprintf(msg, 1000, __VA_ARGS__); cleanup(); error(msg);} while(0)      // http://gcc.gnu.org/onlinedocs/cpp/Swallowing-the-Semicolon.html#Swallowing-the-Semicolon
      |                                                                          ^
forder.c:462:5: warning: format string is not a string literal (potentially insecure) [-Wformat-security]
  462 |     STOP(_("sort must be TRUE or FALSE"));
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
forder.c:59:74: note: expanded from macro 'STOP'
   59 | #define STOP(...) do {snprintf(msg, 1000, __VA_ARGS__); cleanup(); error(msg);} while(0)      // http://gcc.gnu.org/onlinedocs/cpp/Swallowing-the-Semicolon.html#Swallowing-the-Semicolon
      |                                                                          ^~~
forder.c:462:5: note: treat the string as an argument to avoid this
forder.c:59:74: note: expanded from macro 'STOP'
   59 | #define STOP(...) do {snprintf(msg, 1000, __VA_ARGS__); cleanup(); error(msg);} while(0)      // http://gcc.gnu.org/onlinedocs/cpp/Swallowing-the-Semicolon.html#Swallowing-the-Semicolon
      |                                                                          ^
forder.c:465:5: warning: format string is not a string literal (potentially insecure) [-Wformat-security]
  465 |     STOP(_("At least one of retGrp= or sort= must be TRUE"));
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
forder.c:59:74: note: expanded from macro 'STOP'
   59 | #define STOP(...) do {snprintf(msg, 1000, __VA_ARGS__); cleanup(); error(msg);} while(0)      // http://gcc.gnu.org/onlinedocs/cpp/Swallowing-the-Semicolon.html#Swallowing-the-Semicolon
      |                                                                          ^~~
forder.c:465:5: note: treat the string as an argument to avoid this
forder.c:59:74: note: expanded from macro 'STOP'
   59 | #define STOP(...) do {snprintf(msg, 1000, __VA_ARGS__); cleanup(); error(msg);} while(0)      // http://gcc.gnu.org/onlinedocs/cpp/Swallowing-the-Semicolon.html#Swallowing-the-Semicolon
      |                                                                          ^
forder.c:467:5: warning: format string is not a string literal (potentially insecure) [-Wformat-security]
  467 |     STOP(_("na.last must be logical TRUE, FALSE or NA of length 1"));
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
forder.c:59:74: note: expanded from macro 'STOP'
   59 | #define STOP(...) do {snprintf(msg, 1000, __VA_ARGS__); cleanup(); error(msg);} while(0)      // http://gcc.gnu.org/onlinedocs/cpp/Swallowing-the-Semicolon.html#Swallowing-the-Semicolon
      |                                                                          ^~~
forder.c:467:5: note: treat the string as an argument to avoid this
forder.c:59:74: note: expanded from macro 'STOP'
   59 | #define STOP(...) do {snprintf(msg, 1000, __VA_ARGS__); cleanup(); error(msg);} while(0)      // http://gcc.gnu.org/onlinedocs/cpp/Swallowing-the-Semicolon.html#Swallowing-the-Semicolon
      |                                                                          ^
forder.c:495:5: warning: format string is not a string literal (potentially insecure) [-Wformat-security]
  495 |     STOP(_("Unable to allocate %"PRIu64" bytes of working memory"), (uint64_t)keyAlloc*sizeof(uint8_t *));  // # nocov
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
forder.c:59:74: note: expanded from macro 'STOP'
   59 | #define STOP(...) do {snprintf(msg, 1000, __VA_ARGS__); cleanup(); error(msg);} while(0)      // http://gcc.gnu.org/onlinedocs/cpp/Swallowing-the-Semicolon.html#Swallowing-the-Semicolon
      |                                                                          ^~~
forder.c:495:5: note: treat the string as an argument to avoid this
forder.c:59:74: note: expanded from macro 'STOP'
   59 | #define STOP(...) do {snprintf(msg, 1000, __VA_ARGS__); cleanup(); error(msg);} while(0)      // http://gcc.gnu.org/onlinedocs/cpp/Swallowing-the-Semicolon.html#Swallowing-the-Semicolon
      |                                                                          ^
forder.c:511:9: warning: format string is not a string literal (potentially insecure) [-Wformat-security]
  511 |         STOP(_("Item %d of order (ascending/descending) is %d. Must be +1 or -1."), col+1, sortType);
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
forder.c:59:74: note: expanded from macro 'STOP'
   59 | #define STOP(...) do {snprintf(msg, 1000, __VA_ARGS__); cleanup(); error(msg);} while(0)      // http://gcc.gnu.org/onlinedocs/cpp/Swallowing-the-Semicolon.html#Swallowing-the-Semicolon
      |                                                                          ^~~
forder.c:511:9: note: treat the string as an argument to avoid this
forder.c:59:74: note: expanded from macro 'STOP'
   59 | #define STOP(...) do {snprintf(msg, 1000, __VA_ARGS__); cleanup(); error(msg);} while(0)      // http://gcc.gnu.org/onlinedocs/cpp/Swallowing-the-Semicolon.html#Swallowing-the-Semicolon
      |                                                                          ^
forder.c:553:7: warning: format string is not a string literal (potentially insecure) [-Wformat-security]
  553 |       STOP(_("Column %d passed to [f]order is type '%s', not yet supported."), col+1, type2char(TYPEOF(x)));
      |       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
forder.c:59:74: note: expanded from macro 'STOP'
   59 | #define STOP(...) do {snprintf(msg, 1000, __VA_ARGS__); cleanup(); error(msg);} while(0)      // http://gcc.gnu.org/onlinedocs/cpp/Swallowing-the-Semicolon.html#Swallowing-the-Semicolon
      |                                                                          ^~~
forder.c:553:7: note: treat the string as an argument to avoid this
forder.c:59:74: note: expanded from macro 'STOP'
   59 | #define STOP(...) do {snprintf(msg, 1000, __VA_ARGS__); cleanup(); error(msg);} while(0)      // http://gcc.gnu.org/onlinedocs/cpp/Swallowing-the-Semicolon.html#Swallowing-the-Semicolon
      |                                                                          ^
forder.c:599:11: warning: format string is not a string literal (potentially insecure) [-Wformat-security]
  599 |           STOP(_("Unable to allocate %"PRIu64" bytes of working memory"), (uint64_t)nrow*sizeof(uint8_t)); // # nocov
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
forder.c:59:74: note: expanded from macro 'STOP'
   59 | #define STOP(...) do {snprintf(msg, 1000, __VA_ARGS__); cleanup(); error(msg);} while(0)      // http://gcc.gnu.org/onlinedocs/cpp/Swallowing-the-Semicolon.html#Swallowing-the-Semicolon
      |                                                                          ^~~
forder.c:599:11: note: treat the string as an argument to avoid this
forder.c:59:74: note: expanded from macro 'STOP'
   59 | #define STOP(...) do {snprintf(msg, 1000, __VA_ARGS__); cleanup(); error(msg);} while(0)      // http://gcc.gnu.org/onlinedocs/cpp/Swallowing-the-Semicolon.html#Swallowing-the-Semicolon
      |                                                                          ^
forder.c:706:8: warning: format string is not a string literal (potentially insecure) [-Wformat-security]
  706 |        STOP(_("Internal error: column not supported, not caught earlier"));  // # nocov
      |        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
forder.c:59:74: note: expanded from macro 'STOP'
   59 | #define STOP(...) do {snprintf(msg, 1000, __VA_ARGS__); cleanup(); error(msg);} while(0)      // http://gcc.gnu.org/onlinedocs/cpp/Swallowing-the-Semicolon.html#Swallowing-the-Semicolon
      |                                                                          ^~~
forder.c:706:8: note: treat the string as an argument to avoid this
forder.c:59:74: note: expanded from macro 'STOP'
   59 | #define STOP(...) do {snprintf(msg, 1000, __VA_ARGS__); cleanup(); error(msg);} while(0)      // http://gcc.gnu.org/onlinedocs/cpp/Swallowing-the-Semicolon.html#Swallowing-the-Semicolon
      |                                                                          ^
forder.c:720:47: warning: format string is not a string literal (potentially insecure) [-Wformat-security]
  720 |   if (!TMP || !UGRP /*|| TMP%64 || UGRP%64*/) STOP(_("Failed to allocate TMP or UGRP or they weren't cache line aligned: nth=%d"), nth);
      |                                               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
forder.c:59:74: note: expanded from macro 'STOP'
   59 | #define STOP(...) do {snprintf(msg, 1000, __VA_ARGS__); cleanup(); error(msg);} while(0)      // http://gcc.gnu.org/onlinedocs/cpp/Swallowing-the-Semicolon.html#Swallowing-the-Semicolon
      |                                                                          ^~~
forder.c:720:47: note: treat the string as an argument to avoid this
forder.c:59:74: note: expanded from macro 'STOP'
   59 | #define STOP(...) do {snprintf(msg, 1000, __VA_ARGS__); cleanup(); error(msg);} while(0)      // http://gcc.gnu.org/onlinedocs/cpp/Swallowing-the-Semicolon.html#Swallowing-the-Semicolon
      |                                                                          ^
forder.c:725:57: warning: format string is not a string literal (potentially insecure) [-Wformat-security]
  725 |     if (!gs_thread || !gs_thread_alloc || !gs_thread_n) STOP(_("Could not allocate (very tiny) group size thread buffers"));
      |                                                         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
forder.c:59:74: note: expanded from macro 'STOP'
   59 | #define STOP(...) do {snprintf(msg, 1000, __VA_ARGS__); cleanup(); error(msg);} while(0)      // http://gcc.gnu.org/onlinedocs/cpp/Swallowing-the-Semicolon.html#Swallowing-the-Semicolon
      |                                                                          ^~~
forder.c:725:57: note: treat the string as an argument to avoid this
forder.c:59:74: note: expanded from macro 'STOP'
   59 | #define STOP(...) do {snprintf(msg, 1000, __VA_ARGS__); cleanup(); error(msg);} while(0)      // http://gcc.gnu.org/onlinedocs/cpp/Swallowing-the-Semicolon.html#Swallowing-the-Semicolon
      |                                                                          ^
forder.c:1045:36: warning: format string is not a string literal (potentially insecure) [-Wformat-security]
 1045 |   if (!counts || !ugrps || !ngrps) STOP(_("Failed to allocate parallel counts. my_n=%d, nBatch=%d"), my_n, nBatch);
      |                                    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
forder.c:59:74: note: expanded from macro 'STOP'
   59 | #define STOP(...) do {snprintf(msg, 1000, __VA_ARGS__); cleanup(); error(msg);} while(0)      // http://gcc.gnu.org/onlinedocs/cpp/Swallowing-the-Semicolon.html#Swallowing-the-Semicolon
      |                                                                          ^~~
forder.c:1045:36: note: treat the string as an argument to avoid this
forder.c:59:74: note: expanded from macro 'STOP'
   59 | #define STOP(...) do {snprintf(msg, 1000, __VA_ARGS__); cleanup(); error(msg);} while(0)      // http://gcc.gnu.org/onlinedocs/cpp/Swallowing-the-Semicolon.html#Swallowing-the-Semicolon
      |                                                                          ^
forder.c:1154:15: warning: format string is not a string literal (potentially insecure) [-Wformat-security]
 1154 |     if (!TMP) STOP(_("Unable to allocate TMP for my_n=%d items in parallel batch counting"), my_n);
      |               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
forder.c:59:74: note: expanded from macro 'STOP'
   59 | #define STOP(...) do {snprintf(msg, 1000, __VA_ARGS__); cleanup(); error(msg);} while(0)      // http://gcc.gnu.org/onlinedocs/cpp/Swallowing-the-Semicolon.html#Swallowing-the-Semicolon
      |                                                                          ^~~
forder.c:1154:15: note: treat the string as an argument to avoid this
forder.c:59:74: note: expanded from macro 'STOP'
   59 | #define STOP(...) do {snprintf(msg, 1000, __VA_ARGS__); cleanup(); error(msg);} while(0)      // http://gcc.gnu.org/onlinedocs/cpp/Swallowing-the-Semicolon.html#Swallowing-the-Semicolon
      |                                                                          ^
forder.c:1261:38: warning: format string is not a string literal (potentially insecure) [-Wformat-security]
 1261 |   if (!isNull(by) && !isInteger(by)) STOP(_("Internal error: issorted 'by' must be NULL or integer vector"));
      |                                      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
forder.c:59:74: note: expanded from macro 'STOP'
   59 | #define STOP(...) do {snprintf(msg, 1000, __VA_ARGS__); cleanup(); error(msg);} while(0)      // http://gcc.gnu.org/onlinedocs/cpp/Swallowing-the-Semicolon.html#Swallowing-the-Semicolon
      |                                                                          ^~~
forder.c:1261:38: note: treat the string as an argument to avoid this
forder.c:59:74: note: expanded from macro 'STOP'
   59 | #define STOP(...) do {snprintf(msg, 1000, __VA_ARGS__); cleanup(); error(msg);} while(0)      // http://gcc.gnu.org/onlinedocs/cpp/Swallowing-the-Semicolon.html#Swallowing-the-Semicolon
      |                                                                          ^
forder.c:1265:57: warning: format string is not a string literal (potentially insecure) [-Wformat-security]
 1265 |       if (INTEGER(by)[0]<1 || INTEGER(by)[0]>length(x)) STOP(_("issorted 'by' [%d] out of range [1,%d]"), INTEGER(by)[0], length(x));
      |                                                         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
forder.c:59:74: note: expanded from macro 'STOP'
   59 | #define STOP(...) do {snprintf(msg, 1000, __VA_ARGS__); cleanup(); error(msg);} while(0)      // http://gcc.gnu.org/onlinedocs/cpp/Swallowing-the-Semicolon.html#Swallowing-the-Semicolon
      |                                                                          ^~~
forder.c:1265:57: note: treat the string as an argument to avoid this
forder.c:59:74: note: expanded from macro 'STOP'
   59 | #define STOP(...) do {snprintf(msg, 1000, __VA_ARGS__); cleanup(); error(msg);} while(0)      // http://gcc.gnu.org/onlinedocs/cpp/Swallowing-the-Semicolon.html#Swallowing-the-Semicolon
      |                                                                          ^
forder.c:1270:29: warning: format string is not a string literal (potentially insecure) [-Wformat-security]
 1270 |     if (!isVectorAtomic(x)) STOP(_("is.sorted does not work on list columns"));
      |                             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
forder.c:59:74: note: expanded from macro 'STOP'
   59 | #define STOP(...) do {snprintf(msg, 1000, __VA_ARGS__); cleanup(); error(msg);} while(0)      // http://gcc.gnu.org/onlinedocs/cpp/Swallowing-the-Semicolon.html#Swallowing-the-Semicolon
      |                                                                          ^~~
forder.c:1270:29: note: treat the string as an argument to avoid this
forder.c:59:74: note: expanded from macro 'STOP'
   59 | #define STOP(...) do {snprintf(msg, 1000, __VA_ARGS__); cleanup(); error(msg);} while(0)      // http://gcc.gnu.org/onlinedocs/cpp/Swallowing-the-Semicolon.html#Swallowing-the-Semicolon
      |                                                                          ^
forder.c:1302:7: warning: format string is not a string literal (potentially insecure) [-Wformat-security]
 1302 |       STOP(_("type '%s' is not yet supported"), type2char(TYPEOF(x)));
      |       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
forder.c:59:74: note: expanded from macro 'STOP'
   59 | #define STOP(...) do {snprintf(msg, 1000, __VA_ARGS__); cleanup(); error(msg);} while(0)      // http://gcc.gnu.org/onlinedocs/cpp/Swallowing-the-Semicolon.html#Swallowing-the-Semicolon
      |                                                                          ^~~
forder.c:1302:7: note: treat the string as an argument to avoid this
forder.c:59:74: note: expanded from macro 'STOP'
   59 | #define STOP(...) do {snprintf(msg, 1000, __VA_ARGS__); cleanup(); error(msg);} while(0)      // http://gcc.gnu.org/onlinedocs/cpp/Swallowing-the-Semicolon.html#Swallowing-the-Semicolon
      |                                                                          ^
forder.c:1315:29: warning: format string is not a string literal (potentially insecure) [-Wformat-security]
 1315 |     if (c<1 || c>length(x)) STOP(_("issorted 'by' [%d] out of range [1,%d]"), c, length(x));
      |                             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
forder.c:59:74: note: expanded from macro 'STOP'
   59 | #define STOP(...) do {snprintf(msg, 1000, __VA_ARGS__); cleanup(); error(msg);} while(0)      // http://gcc.gnu.org/onlinedocs/cpp/Swallowing-the-Semicolon.html#Swallowing-the-Semicolon
      |                                                                          ^~~
forder.c:1315:29: note: treat the string as an argument to avoid this
forder.c:59:74: note: expanded from macro 'STOP'
   59 | #define STOP(...) do {snprintf(msg, 1000, __VA_ARGS__); cleanup(); error(msg);} while(0)      // http://gcc.gnu.org/onlinedocs/cpp/Swallowing-the-Semicolon.html#Swallowing-the-Semicolon
      |                                                                          ^
forder.c:1332:7: warning: format string is not a string literal (potentially insecure) [-Wformat-security]
 1332 |       STOP(_("type '%s' is not yet supported"), type2char(TYPEOF(col)));  // # nocov
      |       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
forder.c:59:74: note: expanded from macro 'STOP'
   59 | #define STOP(...) do {snprintf(msg, 1000, __VA_ARGS__); cleanup(); error(msg);} while(0)      // http://gcc.gnu.org/onlinedocs/cpp/Swallowing-the-Semicolon.html#Swallowing-the-Semicolon
      |                                                                          ^~~
forder.c:1332:7: note: treat the string as an argument to avoid this
forder.c:59:74: note: expanded from macro 'STOP'
   59 | #define STOP(...) do {snprintf(msg, 1000, __VA_ARGS__); cleanup(); error(msg);} while(0)      // http://gcc.gnu.org/onlinedocs/cpp/Swallowing-the-Semicolon.html#Swallowing-the-Semicolon
      |                                                                          ^
forder.c:1366:9: warning: format string is not a string literal (potentially insecure) [-Wformat-security]
 1366 |         STOP(_("type '%s' is not yet supported"), type2char(TYPEOF(x)));  // # nocov
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
forder.c:59:74: note: expanded from macro 'STOP'
   59 | #define STOP(...) do {snprintf(msg, 1000, __VA_ARGS__); cleanup(); error(msg);} while(0)      // http://gcc.gnu.org/onlinedocs/cpp/Swallowing-the-Semicolon.html#Swallowing-the-Semicolon
      |                                                                          ^~~
forder.c:1366:9: note: treat the string as an argument to avoid this
forder.c:59:74: note: expanded from macro 'STOP'
   59 | #define STOP(...) do {snprintf(msg, 1000, __VA_ARGS__); cleanup(); error(msg);} while(0)      // http://gcc.gnu.org/onlinedocs/cpp/Swallowing-the-Semicolon.html#Swallowing-the-Semicolon
      |                                                                          ^
39 warnings generated.
clang-17 -I"/home/hornik/tmp/R.check/r-devel-clang/Work/build/include" -DNDEBUG   -I/usr/local/include -D_FORTIFY_SOURCE=3  -fopenmp  -fpic  -g -O3 -Wall -pedantic -c frank.c -o frank.o
clang-17 -I"/home/hornik/tmp/R.check/r-devel-clang/Work/build/include" -DNDEBUG   -I/usr/local/include -D_FORTIFY_SOURCE=3  -fopenmp  -fpic  -g -O3 -Wall -pedantic -c fread.c -o fread.o
fread.c:1888:54: warning: format specifies type 'int' but the argument has type 'int64_t' (aka 'long') [-Wformat]
 1887 |         if (verbose) DTPRINT(_("  'header' determined to be true due to column %d containing a string on row 1 and a lower type (%s) in the rest of the %d sample rows\n"),
      |                                                                                                                                                         ~~
      |                                                                                                                                                         %ld
 1888 |                              j+1, typeName[type[j]], sampleLines);
      |                                                      ^~~~~~~~~~~
1 warning generated.
clang-17 -I"/home/hornik/tmp/R.check/r-devel-clang/Work/build/include" -DNDEBUG   -I/usr/local/include -D_FORTIFY_SOURCE=3  -fopenmp  -fpic  -g -O3 -Wall -pedantic -c freadR.c -o freadR.o
clang-17 -I"/home/hornik/tmp/R.check/r-devel-clang/Work/build/include" -DNDEBUG   -I/usr/local/include -D_FORTIFY_SOURCE=3  -fopenmp  -fpic  -g -O3 -Wall -pedantic -c froll.c -o froll.o
clang-17 -I"/home/hornik/tmp/R.check/r-devel-clang/Work/build/include" -DNDEBUG   -I/usr/local/include -D_FORTIFY_SOURCE=3  -fopenmp  -fpic  -g -O3 -Wall -pedantic -c frollR.c -o frollR.o
clang-17 -I"/home/hornik/tmp/R.check/r-devel-clang/Work/build/include" -DNDEBUG   -I/usr/local/include -D_FORTIFY_SOURCE=3  -fopenmp  -fpic  -g -O3 -Wall -pedantic -c frolladaptive.c -o frolladaptive.o
clang-17 -I"/home/hornik/tmp/R.check/r-devel-clang/Work/build/include" -DNDEBUG   -I/usr/local/include -D_FORTIFY_SOURCE=3  -fopenmp  -fpic  -g -O3 -Wall -pedantic -c fsort.c -o fsort.o
fsort.c:168:102: warning: format specifies type 'int' but the argument has type 'size_t' (aka 'unsigned long') [-Wformat]
  168 |   if (verbose) Rprintf(_("maxBit=%d; MSBNbits=%d; shift=%d; MSBsize=%d\n"), maxBit, MSBNbits, shift, MSBsize);
      |                                                                     ~~                               ^~~~~~~
      |                                                                     %zu
fsort.c:245:49: warning: format specifies type 'int' but the argument has type 'size_t' (aka 'unsigned long') [-Wformat]
  245 |       Rprintf(_("Reduced MSBsize from %d to "), MSBsize);
      |                                       ~~        ^~~~~~~
      |                                       %zu
fsort.c:249:54: warning: format specifies type 'int' but the argument has type 'size_t' (aka 'unsigned long') [-Wformat]
  249 |       Rprintf(_("%d by excluding 0 and 1 counts\n"), MSBsize);
      |                  ~~                                  ^~~~~~~
      |                  %zu
3 warnings generated.
clang-17 -I"/home/hornik/tmp/R.check/r-devel-clang/Work/build/include" -DNDEBUG   -I/usr/local/include -D_FORTIFY_SOURCE=3  -fopenmp  -fpic  -g -O3 -Wall -pedantic -c fwrite.c -o fwrite.o
fwrite.c:626:28: warning: format specifies type 'int' but the argument has type 'const void *' [-Wformat]
  625 |     DTPRINT(_("\nargs.doRowNames=%d args.rowNames=%d doQuote=%d args.nrow=%"PRId64" args.ncol=%d eolLen=%d\n"),
      |                                                   ~~
  626 |           args.doRowNames, args.rowNames, doQuote, args.nrow, args.ncol, eolLen);
      |                            ^~~~~~~~~~~~~
fwrite.c:711:68: warning: format specifies type 'int' but the argument has type 'size_t' (aka 'unsigned long') [-Wformat]
  711 |     if (!buff) STOP(_("Unable to allocate %d MiB for header: %s"), headerLen / 1024 / 1024, strerror(errno));
      |                                           ~~                       ^~~~~~~~~~~~~~~~~~~~~~~
      |                                           %zu
fwrite.c:731:15: warning: format string is not a string literal (potentially insecure) [-Wformat-security]
  731 |       DTPRINT(buff);
      |               ^~~~
fwrite.c:731:15: note: treat the string as an argument to avoid this
  731 |       DTPRINT(buff);
      |               ^
      |               "%s", 
fwrite.c:746:64: warning: format specifies type 'int' but the argument has type 'size_t' (aka 'unsigned long') [-Wformat]
  746 |           STOP(_("Unable to allocate %d MiB for zbuffer: %s"), zbuffSize / 1024 / 1024, strerror(errno));  // # nocov
      |                                      ~~                        ^~~~~~~~~~~~~~~~~~~~~~~
      |                                      %zu
fwrite.c:814:10: warning: format specifies type 'int' but the argument has type 'size_t' (aka 'unsigned long') [-Wformat]
  813 |     STOP(_("Unable to allocate %d MB * %d thread buffers; '%d: %s'. Please read ?fwrite for nThread, buffMB and verbose options."),
      |                                ~~
      |                                %zu
  814 |          (size_t)buffSize/(1024^2), nth, errno, strerror(errno));
      |          ^~~~~~~~~~~~~~~~~~~~~~~~~
fwrite.c:825:10: warning: format specifies type 'int' but the argument has type 'size_t' (aka 'unsigned long') [-Wformat]
  824 |       STOP(_("Unable to allocate %d MB * %d thread compressed buffers; '%d: %s'. Please read ?fwrite for nThread, buffMB and verbose options."),
      |                                  ~~
      |                                  %zu
  825 |          (size_t)zbuffSize/(1024^2), nth, errno, strerror(errno));
      |          ^~~~~~~~~~~~~~~~~~~~~~~~~~
fwrite.c:915:21: warning: format string is not a string literal (potentially insecure) [-Wformat-security]
  915 |             DTPRINT(myBuff);
      |                     ^~~~~~
fwrite.c:915:21: note: treat the string as an argument to avoid this
  915 |             DTPRINT(myBuff);
      |                     ^
      |                     "%s", 
7 warnings generated.
clang-17 -I"/home/hornik/tmp/R.check/r-devel-clang/Work/build/include" -DNDEBUG   -I/usr/local/include -D_FORTIFY_SOURCE=3  -fopenmp  -fpic  -g -O3 -Wall -pedantic -c fwriteR.c -o fwriteR.o
clang-17 -I"/home/hornik/tmp/R.check/r-devel-clang/Work/build/include" -DNDEBUG   -I/usr/local/include -D_FORTIFY_SOURCE=3  -fopenmp  -fpic  -g -O3 -Wall -pedantic -c gsumm.c -o gsumm.o
gsumm.c:90:38: warning: format specifies type 'int' but the argument has type 'size_t' (aka 'unsigned long') [-Wformat]
   89 |     error(_("Internal error: nrow=%d  ngrp=%d  nbit=%d  bitshift=%d  highSize=%d  nBatch=%d  batchSize=%d  lastBatchSize=%d\n"),  // # nocov
      |                                                                               ~~
      |                                                                               %zu
   90 |            nrow, ngrp, nb, bitshift, highSize, nBatch, batchSize, lastBatchSize);                                              // # nocov
      |                                      ^~~~~~~~
gsumm.c:90:48: warning: format specifies type 'int' but the argument has type 'size_t' (aka 'unsigned long') [-Wformat]
   89 |     error(_("Internal error: nrow=%d  ngrp=%d  nbit=%d  bitshift=%d  highSize=%d  nBatch=%d  batchSize=%d  lastBatchSize=%d\n"),  // # nocov
      |                                                                                          ~~
      |                                                                                          %zu
   90 |            nrow, ngrp, nb, bitshift, highSize, nBatch, batchSize, lastBatchSize);                                              // # nocov
      |                                                ^~~~~~
gsumm.c:90:56: warning: format specifies type 'int' but the argument has type 'size_t' (aka 'unsigned long') [-Wformat]
   89 |     error(_("Internal error: nrow=%d  ngrp=%d  nbit=%d  bitshift=%d  highSize=%d  nBatch=%d  batchSize=%d  lastBatchSize=%d\n"),  // # nocov
      |                                                                                                        ~~
      |                                                                                                        %zu
   90 |            nrow, ngrp, nb, bitshift, highSize, nBatch, batchSize, lastBatchSize);                                              // # nocov
      |                                                        ^~~~~~~~~
gsumm.c:90:67: warning: format specifies type 'int' but the argument has type 'size_t' (aka 'unsigned long') [-Wformat]
   89 |     error(_("Internal error: nrow=%d  ngrp=%d  nbit=%d  bitshift=%d  highSize=%d  nBatch=%d  batchSize=%d  lastBatchSize=%d\n"),  // # nocov
      |                                                                                                                          ~~
      |                                                                                                                          %zu
   90 |            nrow, ngrp, nb, bitshift, highSize, nBatch, batchSize, lastBatchSize);                                              // # nocov
      |                                                                   ^~~~~~~~~~~~~
gsumm.c:609:90: warning: format specifies type 'int' but the argument has type 'unsigned long' [-Wformat]
  609 |   if (!s) error(_("Unable to allocate %d * %d bytes for sum in gmean na.rm=TRUE"), ngrp, sizeof(long double));
      |                                            ~~                                            ^~~~~~~~~~~~~~~~~~~
      |                                            %lu
gsumm.c:612:93: warning: format specifies type 'int' but the argument has type 'unsigned long' [-Wformat]
  612 |   if (!c) error(_("Unable to allocate %d * %d bytes for counts in gmean na.rm=TRUE"), ngrp, sizeof(int));
      |                                            ~~                                               ^~~~~~~~~~~
      |                                            %lu
gsumm.c:638:92: warning: format specifies type 'int' but the argument has type 'unsigned long' [-Wformat]
  638 |     if (!si) error(_("Unable to allocate %d * %d bytes for si in gmean na.rm=TRUE"), ngrp, sizeof(long double));
      |                                               ~~                                           ^~~~~~~~~~~~~~~~~~~
      |                                               %lu
gsumm.c:1411:72: warning: format specifies type 'int' but the argument has type 'unsigned long' [-Wformat]
 1411 |   if (!s) error(_("Unable to allocate %d * %d bytes for gprod"), ngrp, sizeof(long double));
      |                                            ~~                          ^~~~~~~~~~~~~~~~~~~
      |                                            %lu
8 warnings generated.
clang-17 -I"/home/hornik/tmp/R.check/r-devel-clang/Work/build/include" -DNDEBUG   -I/usr/local/include -D_FORTIFY_SOURCE=3  -fopenmp  -fpic  -g -O3 -Wall -pedantic -c ijoin.c -o ijoin.o
ijoin.c:323:89: warning: data argument not used by format string [-Wformat-extra-args]
  323 |     default: error(_("Internal error: unknown type in mult=ALL in overlaps: %d"), mult, type); // #nocov
      |                      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~         ^
1 warning generated.
clang-17 -I"/home/hornik/tmp/R.check/r-devel-clang/Work/build/include" -DNDEBUG   -I/usr/local/include -D_FORTIFY_SOURCE=3  -fopenmp  -fpic  -g -O3 -Wall -pedantic -c init.c -o init.o
init.c:153:139: warning: format specifies type 'int' but the argument has type 'unsigned long' [-Wformat]
  153 |   if (sizeof(char *)>8) error(_("Pointers are %d bytes, greater than 8. We have not tested on any architecture greater than 64bit yet."), sizeof(char *));
      |                                               ~~                                                                                          ^~~~~~~~~~~~~~
      |                                               %lu
init.c:168:71: warning: format specifies type 'int' but the argument has type 'unsigned long' [-Wformat]
  168 |   if (sizeof(int) != 4) error(_("Checking sizeof(int) [%d] is 4 %s"), sizeof(int), msg);
      |                                                        ~~             ^~~~~~~~~~~
      |                                                        %lu
init.c:169:77: warning: format specifies type 'int' but the argument has type 'unsigned long' [-Wformat]
  169 |   if (sizeof(double) != 8) error(_("Checking sizeof(double) [%d] is 8 %s"), sizeof(double), msg);     // 8 on both 32bit and 64bit
      |                                                              ~~             ^~~~~~~~~~~~~~
      |                                                              %lu
init.c:171:83: warning: format specifies type 'int' but the argument has type 'unsigned long' [-Wformat]
  171 |   if (sizeof(long long) != 8) error(_("Checking sizeof(long long) [%d] is 8 %s"), sizeof(long long), msg);
      |                                                                    ~~             ^~~~~~~~~~~~~~~~~
      |                                                                    %lu
init.c:172:106: warning: format specifies type 'int' but the argument has type 'unsigned long' [-Wformat]
  172 |   if (sizeof(char *) != 4 && sizeof(char *) != 8) error(_("Checking sizeof(pointer) [%d] is 4 or 8 %s"), sizeof(char *), msg);
      |                                                                                      ~~                  ^~~~~~~~~~~~~~
      |                                                                                      %lu
init.c:173:105: warning: format specifies type 'int' but the argument has type 'unsigned long' [-Wformat]
  173 |   if (sizeof(SEXP) != sizeof(char *)) error(_("Checking sizeof(SEXP) [%d] == sizeof(pointer) [%d] %s"), sizeof(SEXP), sizeof(char *), msg);
      |                                                                       ~~                                ^~~~~~~~~~~~
      |                                                                       %lu
init.c:173:119: warning: format specifies type 'int' but the argument has type 'unsigned long' [-Wformat]
  173 |   if (sizeof(SEXP) != sizeof(char *)) error(_("Checking sizeof(SEXP) [%d] == sizeof(pointer) [%d] %s"), sizeof(SEXP), sizeof(char *), msg);
      |                                                                                               ~~                      ^~~~~~~~~~~~~~
      |                                                                                               %lu
init.c:174:81: warning: format specifies type 'int' but the argument has type 'unsigned long' [-Wformat]
  174 |   if (sizeof(uint64_t) != 8) error(_("Checking sizeof(uint64_t) [%d] is 8 %s"), sizeof(uint64_t), msg);
      |                                                                  ~~             ^~~~~~~~~~~~~~~~
      |                                                                  %lu
init.c:175:79: warning: format specifies type 'int' but the argument has type 'unsigned long' [-Wformat]
  175 |   if (sizeof(int64_t) != 8) error(_("Checking sizeof(int64_t) [%d] is 8 %s"), sizeof(int64_t), msg);
      |                                                                ~~             ^~~~~~~~~~~~~~~
      |                                                                %lu
init.c:176:87: warning: format specifies type 'int' but the argument has type 'unsigned long' [-Wformat]
  176 |   if (sizeof(signed char) != 1) error(_("Checking sizeof(signed char) [%d] is 1 %s"), sizeof(signed char), msg);
      |                                                                        ~~             ^~~~~~~~~~~~~~~~~~~
      |                                                                        %lu
init.c:177:77: warning: format specifies type 'int' but the argument has type 'unsigned long' [-Wformat]
  177 |   if (sizeof(int8_t) != 1) error(_("Checking sizeof(int8_t) [%d] is 1 %s"), sizeof(int8_t), msg);
      |                                                              ~~             ^~~~~~~~~~~~~~
      |                                                              %lu
init.c:178:79: warning: format specifies type 'int' but the argument has type 'unsigned long' [-Wformat]
  178 |   if (sizeof(uint8_t) != 1) error(_("Checking sizeof(uint8_t) [%d] is 1 %s"), sizeof(uint8_t), msg);
      |                                                                ~~             ^~~~~~~~~~~~~~~
      |                                                                %lu
init.c:179:79: warning: format specifies type 'int' but the argument has type 'unsigned long' [-Wformat]
  179 |   if (sizeof(int16_t) != 2) error(_("Checking sizeof(int16_t) [%d] is 2 %s"), sizeof(int16_t), msg);
      |                                                                ~~             ^~~~~~~~~~~~~~~
      |                                                                %lu
init.c:180:81: warning: format specifies type 'int' but the argument has type 'unsigned long' [-Wformat]
  180 |   if (sizeof(uint16_t) != 2) error(_("Checking sizeof(uint16_t) [%d] is 2 %s"), sizeof(uint16_t), msg);
      |                                                                  ~~             ^~~~~~~~~~~~~~~~
      |                                                                  %lu
init.c:184:95: warning: format specifies type 'int' but the argument has type 'R_xlen_t' (aka 'long') [-Wformat]
  184 |   if (TRUELENGTH(tmp)!=0) error(_("Checking TRUELENGTH(allocVector(INTSXP,2)) [%d] is 0 %s"), TRUELENGTH(tmp), msg);
      |                                                                                ~~             ^~~~~~~~~~~~~~~
      |                                                                                %td
15 warnings generated.
clang-17 -I"/home/hornik/tmp/R.check/r-devel-clang/Work/build/include" -DNDEBUG   -I/usr/local/include -D_FORTIFY_SOURCE=3  -fopenmp  -fpic  -g -O3 -Wall -pedantic -c inrange.c -o inrange.o
clang-17 -I"/home/hornik/tmp/R.check/r-devel-clang/Work/build/include" -DNDEBUG   -I/usr/local/include -D_FORTIFY_SOURCE=3  -fopenmp  -fpic  -g -O3 -Wall -pedantic -c nafill.c -o nafill.o
clang-17 -I"/home/hornik/tmp/R.check/r-devel-clang/Work/build/include" -DNDEBUG   -I/usr/local/include -D_FORTIFY_SOURCE=3  -fopenmp  -fpic  -g -O3 -Wall -pedantic -c nqrecreateindices.c -o nqrecreateindices.o
clang-17 -I"/home/hornik/tmp/R.check/r-devel-clang/Work/build/include" -DNDEBUG   -I/usr/local/include -D_FORTIFY_SOURCE=3  -fopenmp  -fpic  -g -O3 -Wall -pedantic -c openmp-utils.c -o openmp-utils.o
clang-17 -I"/home/hornik/tmp/R.check/r-devel-clang/Work/build/include" -DNDEBUG   -I/usr/local/include -D_FORTIFY_SOURCE=3  -fopenmp  -fpic  -g -O3 -Wall -pedantic -c quickselect.c -o quickselect.o
clang-17 -I"/home/hornik/tmp/R.check/r-devel-clang/Work/build/include" -DNDEBUG   -I/usr/local/include -D_FORTIFY_SOURCE=3  -fopenmp  -fpic  -g -O3 -Wall -pedantic -c rbindlist.c -o rbindlist.o
rbindlist.c:212:37: warning: format string is not a string literal (potentially insecure) [-Wformat-security]
  212 |           if (usenames==TRUE) error(buff);
      |                                     ^~~~
rbindlist.c:212:37: note: treat the string as an argument to avoid this
  212 |           if (usenames==TRUE) error(buff);
      |                                     ^
      |                                     "%s", 
rbindlist.c:233:50: warning: format string is not a string literal (potentially insecure) [-Wformat-security]
  233 |         else if (strcmp(o,"warning")==0) warning(buff);
      |                                                  ^~~~
rbindlist.c:233:50: note: treat the string as an argument to avoid this
  233 |         else if (strcmp(o,"warning")==0) warning(buff);
      |                                                  ^
      |                                                  "%s", 
rbindlist.c:234:48: warning: format string is not a string literal (potentially insecure) [-Wformat-security]
  234 |         else if (strcmp(o,"error")==0)   error(buff);
      |                                                ^~~~
rbindlist.c:234:48: note: treat the string as an argument to avoid this
  234 |         else if (strcmp(o,"error")==0)   error(buff);
      |                                                ^
      |                                                "%s", 
rbindlist.c:494:31: warning: format string is not a string literal (potentially insecure) [-Wformat-security]
  494 |       if (warnStr[0]) warning(warnStr);  // now savetl_end() has happened it's safe to call warning (could error if options(warn=2))
      |                               ^~~~~~~
rbindlist.c:494:31: note: treat the string as an argument to avoid this
  494 |       if (warnStr[0]) warning(warnStr);  // now savetl_end() has happened it's safe to call warning (could error if options(warn=2))
      |                               ^
      |                               "%s", 
4 warnings generated.
clang-17 -I"/home/hornik/tmp/R.check/r-devel-clang/Work/build/include" -DNDEBUG   -I/usr/local/include -D_FORTIFY_SOURCE=3  -fopenmp  -fpic  -g -O3 -Wall -pedantic -c reorder.c -o reorder.o
reorder.c:17:115: warning: format specifies type 'int' but the argument has type 'size_t' (aka 'unsigned long') [-Wformat]
   17 |         error(_("Item %d of list is type '%s' which isn't yet supported (SIZEOF=%d)"), i+1, type2char(TYPEOF(v)), SIZEOF(v));
      |                                                                                 ~~                                ^~~~~~~~~
      |                                                                                 %zu
./data.table.h:37:19: note: expanded from macro 'SIZEOF'
   37 | #define SIZEOF(x) __sizes[TYPEOF(x)]
      |                   ^~~~~~~~~~~~~~~~~~
reorder.c:27:136: warning: format specifies type 'int' but the argument has type 'size_t' (aka 'unsigned long') [-Wformat]
   27 |       error(_("reorder accepts vectors but this non-VECSXP is type '%s' which isn't yet supported (SIZEOF=%d)"), type2char(TYPEOF(x)), SIZEOF(x));
      |                                                                                                           ~~                           ^~~~~~~~~
      |                                                                                                           %zu
./data.table.h:37:19: note: expanded from macro 'SIZEOF'
   37 | #define SIZEOF(x) __sizes[TYPEOF(x)]
      |                   ^~~~~~~~~~~~~~~~~~
2 warnings generated.
clang-17 -I"/home/hornik/tmp/R.check/r-devel-clang/Work/build/include" -DNDEBUG   -I/usr/local/include -D_FORTIFY_SOURCE=3  -fopenmp  -fpic  -g -O3 -Wall -pedantic -c shift.c -o shift.o
clang-17 -I"/home/hornik/tmp/R.check/r-devel-clang/Work/build/include" -DNDEBUG   -I/usr/local/include -D_FORTIFY_SOURCE=3  -fopenmp  -fpic  -g -O3 -Wall -pedantic -c snprintf.c -o snprintf.o
snprintf.c:217:136: warning: format specifies type 'char *' but the argument has type 'int' [-Wformat]
  217 |   if (res!=13) /* should return what would have been written if not chopped */      error(_("dt_win_snprintf test %d failed: %s"), 10, res);
      |                                                                                                                              ~~        ^~~
      |                                                                                                                              %d
1 warning generated.
clang-17 -I"/home/hornik/tmp/R.check/r-devel-clang/Work/build/include" -DNDEBUG   -I/usr/local/include -D_FORTIFY_SOURCE=3  -fopenmp  -fpic  -g -O3 -Wall -pedantic -c subset.c -o subset.o
subset.c:270:26: warning: format string is not a string literal (potentially insecure) [-Wformat-security]
  270 |     if (err!=NULL) error(err);
      |                          ^~~
subset.c:270:26: note: treat the string as an argument to avoid this
  270 |     if (err!=NULL) error(err);
      |                          ^
      |                          "%s", 
1 warning generated.
clang-17 -I"/home/hornik/tmp/R.check/r-devel-clang/Work/build/include" -DNDEBUG   -I/usr/local/include -D_FORTIFY_SOURCE=3  -fopenmp  -fpic  -g -O3 -Wall -pedantic -c transpose.c -o transpose.o
clang-17 -I"/home/hornik/tmp/R.check/r-devel-clang/Work/build/include" -DNDEBUG   -I/usr/local/include -D_FORTIFY_SOURCE=3  -fopenmp  -fpic  -g -O3 -Wall -pedantic -c types.c -o types.o
clang-17 -I"/home/hornik/tmp/R.check/r-devel-clang/Work/build/include" -DNDEBUG   -I/usr/local/include -D_FORTIFY_SOURCE=3  -fopenmp  -fpic  -g -O3 -Wall -pedantic -c uniqlist.c -o uniqlist.o
clang-17 -I"/home/hornik/tmp/R.check/r-devel-clang/Work/build/include" -DNDEBUG   -I/usr/local/include -D_FORTIFY_SOURCE=3  -fopenmp  -fpic  -g -O3 -Wall -pedantic -c utils.c -o utils.o
clang-17 -I"/home/hornik/tmp/R.check/r-devel-clang/Work/build/include" -DNDEBUG   -I/usr/local/include -D_FORTIFY_SOURCE=3  -fopenmp  -fpic  -g -O3 -Wall -pedantic -c vecseq.c -o vecseq.o
clang-17 -I"/home/hornik/tmp/R.check/r-devel-clang/Work/build/include" -DNDEBUG   -I/usr/local/include -D_FORTIFY_SOURCE=3  -fopenmp  -fpic  -g -O3 -Wall -pedantic -c wrappers.c -o wrappers.o
clang-17 -shared -L/home/hornik/tmp/R.check/r-devel-clang/Work/build/lib -Wl,-O1 -o data.table.so assign.o between.o bmerge.o chmatch.o cj.o coalesce.o dogroups.o fastmean.o fcast.o fifelse.o fmelt.o forder.o frank.o fread.o freadR.o froll.o frollR.o frolladaptive.o fsort.o fwrite.o fwriteR.o gsumm.o ijoin.o init.o inrange.o nafill.o nqrecreateindices.o openmp-utils.o quickselect.o rbindlist.o reorder.o shift.o snprintf.o subset.o transpose.o types.o uniqlist.o utils.o vecseq.o wrappers.o -fopenmp -lz -L/home/hornik/tmp/R.check/r-devel-clang/Work/build/lib -lR
PKG_CFLAGS = -fopenmp
PKG_LIBS = -fopenmp -lz
if [ "data.table.so" != "data_table.so" ]; then mv data.table.so data_table.so; fi
if [ "" != "Windows_NT" ] && [ `uname -s` = 'Darwin' ]; then install_name_tool -id data_table.so data_table.so; fi
make[1]: Leaving directory '/tmp/RtmpVhwrWA/R.INSTALL224ed86af594d/data.table/src'
make[1]: Entering directory '/tmp/RtmpVhwrWA/R.INSTALL224ed86af594d/data.table/src'
make[1]: Leaving directory '/tmp/RtmpVhwrWA/R.INSTALL224ed86af594d/data.table/src'
installing to /home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/00LOCK-data.table/00new/data.table/libs
** R
** inst
** byte-compile and prepare package for lazy loading
** help
*** installing help indices
** building package indices
** installing vignettes
** 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 (data.table)