=> Bootstrap dependency digest>=20211023: found digest-20220214 ===> Skipping vulnerability checks. WARNING: No /usr/pkg/pkgdb/pkg-vulnerabilities file found. WARNING: To fix run: `/usr/sbin/pkg_admin -K /usr/pkg/pkgdb fetch-pkg-vulnerabilities'. ===> Building for bfs-4.1.3 [ CC ] src/xtime.c [ CC ] src/xregex.c [ CC ] src/xspawn.c [ CC ] tests/mksock.c [ CC ] tests/bfstd.c [ CC ] tests/alloc.c [ CC ] tests/ptyx.c [ CC ] tests/bit.c In file included from src/xregex.c:6:0: src/alloc.h:134:1: error: expected identifier or '(' before '[' token [[_malloc(free, 1)]] ^ src/alloc.h:148:1: error: expected identifier or '(' before '[' token [[_malloc(free, 1)]] ^ src/alloc.h:190:1: error: expected identifier or '(' before '[' token [[_nodiscard]] ^ src/alloc.h:217:1: error: expected identifier or '(' before '[' token [[_nodiscard]] ^ src/alloc.h:275:1: error: expected identifier or '(' before '[' token [[_malloc(arena_free, 2)]] ^ src/alloc.h:356:1: error: expected identifier or '(' before '[' token [[_malloc(varena_free, 2)]] ^ src/alloc.h:373:1: error: expected identifier or '(' before '[' token [[_nodiscard]] ^ src/alloc.h:388:1: error: expected identifier or '(' before '[' token [[_nodiscard]] ^ In file included from src/xtime.c:6:0: src/alloc.h:134:1: error: expected identifier or '(' before '[' token [[_malloc(free, 1)]] ^ src/alloc.h:148:1: error: expected identifier or '(' before '[' token [[_malloc(free, 1)]] ^ src/alloc.h:190:1: error: expected identifier or '(' before '[' token [[_nodiscard]] ^ src/alloc.h:217:1: error: expected identifier or '(' before '[' token [[_nodiscard]] ^ src/alloc.h:275:1: error: expected identifier or '(' before '[' token [[_malloc(arena_free, 2)]] ^ src/alloc.h:356:1: error: expected identifier or '(' before '[' token [[_malloc(varena_free, 2)]] ^ src/alloc.h:373:1: error: expected identifier or '(' before '[' token [[_nodiscard]] ^ src/alloc.h:388:1: error: expected identifier or '(' before '[' token [[_nodiscard]] ^ In file included from src/xspawn.c:6:0: src/alloc.h:134:1: error: expected identifier or '(' before '[' token [[_malloc(free, 1)]] ^ src/alloc.h:148:1: error: expected identifier or '(' before '[' token [[_malloc(free, 1)]] ^ src/alloc.h:190:1: error: expected identifier or '(' before '[' token [[_nodiscard]] ^ src/alloc.h:217:1: error: expected identifier or '(' before '[' token [[_nodiscard]] ^ src/alloc.h:275:1: error: expected identifier or '(' before '[' token [[_malloc(arena_free, 2)]] ^ src/alloc.h:356:1: error: expected identifier or '(' before '[' token [[_malloc(varena_free, 2)]] ^ src/alloc.h:373:1: error: expected identifier or '(' before '[' token [[_nodiscard]] ^ src/alloc.h:388:1: error: expected identifier or '(' before '[' token [[_nodiscard]] ^ In file included from src/xregex.c:9:0: src/diag.h:34:1: error: expected identifier or '(' before '[' token [[_printf(1, 2)]] ^ src/diag.h:54:1: error: expected identifier or '(' before '[' token [[_cold]] ^ src/diag.h:144:1: error: expected identifier or '(' before '[' token [[_cold]] ^ src/diag.h:150:1: error: expected identifier or '(' before '[' token [[_cold]] ^ src/diag.h:159:1: error: expected identifier or '(' before '[' token [[_cold]] ^ src/diag.h:168:1: error: expected identifier or '(' before '[' token [[_cold]] ^ src/diag.h:175:1: error: expected identifier or '(' before '[' token [[_cold]] ^ src/diag.h:182:1: error: expected identifier or '(' before '[' token [[_cold]] ^ src/diag.h:189:1: error: expected identifier or '(' before '[' token [[_cold]] ^ src/diag.h:196:1: error: expected identifier or '(' before '[' token [[_cold]] ^ src/diag.h:202:1: error: expected identifier or '(' before '[' token [[_cold]] ^ src/diag.h:208:1: error: expected identifier or '(' before '[' token [[_cold]] ^ src/diag.h:214:1: error: expected identifier or '(' before '[' token [[_cold]] ^ src/diag.h:220:1: error: expected identifier or '(' before '[' token [[_cold]] ^ src/diag.h:226:1: error: expected identifier or '(' before '[' token [[_cold]] ^ src/diag.h:232:1: error: expected identifier or '(' before '[' token [[_cold]] ^ In file included from src/xtime.c:9:0: src/diag.h:34:1: error: expected identifier or '(' before '[' token [[_printf(1, 2)]] ^ src/diag.h:54:1: error: expected identifier or '(' before '[' token [[_cold]] ^ src/diag.h:144:1: error: expected identifier or '(' before '[' token [[_cold]] ^ src/diag.h:150:1: error: expected identifier or '(' before '[' token [[_cold]] ^ src/diag.h:159:1: error: expected identifier or '(' before '[' token [[_cold]] ^ src/diag.h:168:1: error: expected identifier or '(' before '[' token [[_cold]] ^ src/diag.h:175:1: error: expected identifier or '(' before '[' token [[_cold]] ^ src/diag.h:182:1: error: expected identifier or '(' before '[' token [[_cold]] ^ src/diag.h:189:1: error: expected identifier or '(' before '[' token [[_cold]] ^ src/diag.h:196:1: error: expected identifier or '(' before '[' token [[_cold]] ^ src/diag.h:202:1: error: expected identifier or '(' before '[' token [[_cold]] ^ src/diag.h:208:1: error: expected identifier or '(' before '[' token [[_cold]] ^ src/diag.h:214:1: error: expected identifier or '(' before '[' token [[_cold]] ^ src/diag.h:220:1: error: expected identifier or '(' before '[' token [[_cold]] ^ src/diag.h:226:1: error: expected identifier or '(' before '[' token [[_cold]] ^ src/diag.h:232:1: error: expected identifier or '(' before '[' token [[_cold]] ^ In file included from tests/tests.h:13:0, from tests/alloc.c:4: src/diag.h:34:1: error: expected identifier or '(' before '[' token [[_printf(1, 2)]] ^ src/diag.h:54:1: error: expected identifier or '(' before '[' token [[_cold]] ^ src/diag.h:144:1: error: expected identifier or '(' before '[' token [[_cold]] ^ src/diag.h:150:1: error: expected identifier or '(' before '[' token [[_cold]] ^ src/diag.h:159:1: error: expected identifier or '(' before '[' token [[_cold]] ^ src/diag.h:168:1: error: expected identifier or '(' before '[' token [[_cold]] ^ src/diag.h:175:1: error: expected identifier or '(' before '[' token [[_cold]] ^ src/diag.h:182:1: error: expected identifier or '(' before '[' token [[_cold]] ^ src/diag.h:189:1: error: expected identifier or '(' before '[' token [[_cold]] ^ src/diag.h:196:1: error: expected identifier or '(' before '[' token [[_cold]] ^ src/diag.h:202:1: error: expected identifier or '(' before '[' token [[_cold]] ^ src/diag.h:208:1: error: expected identifier or '(' before '[' token [[_cold]] ^ src/diag.h:214:1: error: expected identifier or '(' before '[' token [[_cold]] ^ src/diag.h:220:1: error: expected identifier or '(' before '[' token [[_cold]] ^ src/diag.h:226:1: error: expected identifier or '(' before '[' token [[_cold]] ^ src/diag.h:232:1: error: expected identifier or '(' before '[' token [[_cold]] ^ In file included from src/xtime.c:6:0: src/xtime.c: In function 'xtimer_start': src/alloc.h:154:10: error: implicit declaration of function 'alloc'; did you mean 'alloca'? [-Werror=implicit-function-declaration] (type *)alloc(alignof(type), sizeof(type)) ^ src/xtime.c:426:24: note: in expansion of macro 'ALLOC' struct timer *timer = ALLOC(struct timer); ^~~~~ src/alloc.h:154:2: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] (type *)alloc(alignof(type), sizeof(type)) ^ src/xtime.c:426:24: note: in expansion of macro 'ALLOC' struct timer *timer = ALLOC(struct timer); ^~~~~ In file included from src/xspawn.c:9:0: src/diag.h:34:1: error: expected identifier or '(' before '[' token [[_printf(1, 2)]] ^ src/diag.h:54:1: error: expected identifier or '(' before '[' token [[_cold]] ^ In file included from src/xregex.c:6:0: src/xregex.c: In function 'bfs_regcomp': src/diag.h:144:1: error: expected identifier or '(' before '[' token [[_cold]] ^ src/diag.h:150:1: error: expected identifier or '(' before '[' token [[_cold]] ^ src/diag.h:159:1: error: expected identifier or '(' before '[' token [[_cold]] ^ src/diag.h:168:1: error: expected identifier or '(' before '[' token [[_cold]] ^ src/alloc.h:154:10: error: implicit declaration of function 'alloc'; did you mean 'alloca'? [-Werror=implicit-function-declaration] (type *)alloc(alignof(type), sizeof(type)) ^ src/xregex.c:156:36: note: in expansion of macro 'ALLOC' struct bfs_regex *regex = *preg = ALLOC(struct bfs_regex); ^~~~~ src/diag.h:175:1: error: expected identifier or '(' before '[' token [[_cold]] ^ src/diag.h:182:1: error: expected identifier or '(' before '[' token [[_cold]] ^ src/diag.h:189:1: error: expected identifier or '(' before '[' token [[_cold]] ^ src/alloc.h:154:2: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] (type *)alloc(alignof(type), sizeof(type)) ^ src/xregex.c:156:36: note: in expansion of macro 'ALLOC' struct bfs_regex *regex = *preg = ALLOC(struct bfs_regex); ^~~~~ src/diag.h:196:1: error: expected identifier or '(' before '[' token [[_cold]] ^ src/diag.h:202:1: error: expected identifier or '(' before '[' token [[_cold]] ^ src/diag.h:208:1: error: expected identifier or '(' before '[' token [[_cold]] ^ src/diag.h:214:1: error: expected identifier or '(' before '[' token [[_cold]] ^ src/diag.h:220:1: error: expected identifier or '(' before '[' token [[_cold]] ^ src/diag.h:226:1: error: expected identifier or '(' before '[' token [[_cold]] ^ src/diag.h:232:1: error: expected identifier or '(' before '[' token [[_cold]] ^ In file included from tests/alloc.c:6:0: src/alloc.h:134:1: error: expected identifier or '(' before '[' token [[_malloc(free, 1)]] ^ src/alloc.h:148:1: error: expected identifier or '(' before '[' token [[_malloc(free, 1)]] ^ src/alloc.h:190:1: error: expected identifier or '(' before '[' token [[_nodiscard]] ^ src/alloc.h:217:1: error: expected identifier or '(' before '[' token [[_nodiscard]] ^ src/alloc.h:275:1: error: expected identifier or '(' before '[' token [[_malloc(arena_free, 2)]] ^ src/alloc.h:356:1: error: expected identifier or '(' before '[' token [[_malloc(varena_free, 2)]] ^ src/alloc.h:373:1: error: expected identifier or '(' before '[' token [[_nodiscard]] ^ src/alloc.h:388:1: error: expected identifier or '(' before '[' token [[_nodiscard]] ^ cc1: some warnings being treated as errors tests/alloc.c: In function 'check_varena_realloc': tests/alloc.c:20:10: error: implicit declaration of function 'varena_realloc'; did you mean 'varena_destroy'? [-Werror=implicit-function-declaration] flexy = varena_realloc(varena, flexy, old_count, new_count); ^~~~~~~~~~~~~~ varena_destroy tests/alloc.c:20:8: warning: assignment makes pointer from integer without a cast [-Wint-conversion] flexy = varena_realloc(varena, flexy, old_count, new_count); ^ In file included from src/alloc.h:11:0, from src/xtime.c:6: src/xtime.c: In function 'xtimer_stop': src/bfs.h:77:24: error: implicit declaration of function 'BFS_VA_IF_AB__VA_OPT__'; did you mean 'BFS_VA_IF_ABC'? [-Werror=implicit-function-declaration] #define BFS_VA_IF(...) BFS_VA_IF_AB ## __VA_OPT__(C) ^ src/diag.h:96:22: note: in expansion of macro 'BFS_VA_IF' ((cond) ? (void)0 : BFS_VA_IF(__VA_ARGS__) \ ^~~~~~~~~ src/xtime.c:498:3: note: in expansion of macro 'bfs_everify' bfs_everify(ret == 0, "timer_delete()"); ^~~~~~~~~~~ src/bfs.h:77:51: error: 'C' undeclared (first use in this function) #define BFS_VA_IF(...) BFS_VA_IF_AB ## __VA_OPT__(C) ^ src/diag.h:96:22: note: in expansion of macro 'BFS_VA_IF' ((cond) ? (void)0 : BFS_VA_IF(__VA_ARGS__) \ ^~~~~~~~~ src/xtime.c:498:3: note: in expansion of macro 'bfs_everify' bfs_everify(ret == 0, "timer_delete()"); ^~~~~~~~~~~ src/bfs.h:77:51: note: each undeclared identifier is reported only once for each function it appears in #define BFS_VA_IF(...) BFS_VA_IF_AB ## __VA_OPT__(C) ^ src/diag.h:96:22: note: in expansion of macro 'BFS_VA_IF' ((cond) ? (void)0 : BFS_VA_IF(__VA_ARGS__) \ ^~~~~~~~~ src/xtime.c:498:3: note: in expansion of macro 'bfs_everify' bfs_everify(ret == 0, "timer_delete()"); ^~~~~~~~~~~ In file included from src/xspawn.c:10:0: src/xspawn.c: In function 'bfs_spawn_destroy': src/list.h:340:28: error: 'struct bfs_spawn_action' has no member named 'BFS_VA_IF_AB__VA_OPT__' item && (_next = item->next, true); \ ^ src/list.h:336:2: note: in expansion of macro 'for_slist_' for_slist_(type, item, (list), LIST_NEXT_(__VA_ARGS__)) ^~~~~~~~~~ src/xspawn.c:113:2: note: in expansion of macro 'for_slist' for_slist (struct bfs_spawn_action, action, ctx) { ^~~~~~~~~ In file included from src/xtime.c:9:0: src/diag.h:63:2: error: implicit declaration of function 'bfs_abortf'; did you mean 'bfs_abort'? [-Werror=implicit-function-declaration] bfs_abortf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^ src/diag.h:70:4: note: in expansion of macro 'bfs_abort' (bfs_abort(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~~ src/diag.h:97:4: note: in expansion of macro 'bfs_eabort' (bfs_eabort(__VA_ARGS__)) \ ^~~~~~~~~~ src/xtime.c:498:3: note: in expansion of macro 'bfs_everify' bfs_everify(ret == 0, "timer_delete()"); ^~~~~~~~~~~ src/bfs.h:77:51: error: 'C' undeclared (first use in this function) #define BFS_VA_IF(...) BFS_VA_IF_AB ## __VA_OPT__(C) ^ src/list.h:340:30: note: in definition of macro 'for_slist_' item && (_next = item->next, true); \ ^~~~ src/list.h:139:2: note: in expansion of macro 'BFS_VA_IF' BFS_VA_IF(node)(node.next)(next) ^~~~~~~~~ src/list.h:336:33: note: in expansion of macro 'LIST_NEXT_' for_slist_(type, item, (list), LIST_NEXT_(__VA_ARGS__)) ^~~~~~~~~~ src/xspawn.c:113:2: note: in expansion of macro 'for_slist' for_slist (struct bfs_spawn_action, action, ctx) { ^~~~~~~~~ src/bfs.h:77:51: note: each undeclared identifier is reported only once for each function it appears in #define BFS_VA_IF(...) BFS_VA_IF_AB ## __VA_OPT__(C) ^ src/list.h:340:30: note: in definition of macro 'for_slist_' item && (_next = item->next, true); \ ^~~~ src/list.h:139:2: note: in expansion of macro 'BFS_VA_IF' BFS_VA_IF(node)(node.next)(next) ^~~~~~~~~ src/list.h:336:33: note: in expansion of macro 'LIST_NEXT_' for_slist_(type, item, (list), LIST_NEXT_(__VA_ARGS__)) ^~~~~~~~~~ src/xspawn.c:113:2: note: in expansion of macro 'for_slist' for_slist (struct bfs_spawn_action, action, ctx) { ^~~~~~~~~ src/list.h:139:22: error: expected expression before '.' token BFS_VA_IF(node)(node.next)(next) ^ src/list.h:340:30: note: in definition of macro 'for_slist_' item && (_next = item->next, true); \ ^~~~ src/list.h:336:33: note: in expansion of macro 'LIST_NEXT_' for_slist_(type, item, (list), LIST_NEXT_(__VA_ARGS__)) ^~~~~~~~~~ src/xspawn.c:113:2: note: in expansion of macro 'for_slist' for_slist (struct bfs_spawn_action, action, ctx) { ^~~~~~~~~ src/list.h:139:29: error: 'next' undeclared (first use in this function); did you mean '_next'? BFS_VA_IF(node)(node.next)(next) ^ src/list.h:340:30: note: in definition of macro 'for_slist_' item && (_next = item->next, true); \ ^~~~ src/list.h:336:33: note: in expansion of macro 'LIST_NEXT_' for_slist_(type, item, (list), LIST_NEXT_(__VA_ARGS__)) ^~~~~~~~~~ src/xspawn.c:113:2: note: in expansion of macro 'for_slist' for_slist (struct bfs_spawn_action, action, ctx) { ^~~~~~~~~ src/xspawn.c: At top level: src/xspawn.c:122:1: error: expected identifier or '(' before '[' token [[_maybe_unused]] ^ gmake: *** [Makefile:237: obj/src/xregex.o] Error 1 gmake: *** Waiting for unfinished jobs.... In file included from src/xspawn.c:6:0: src/xspawn.c: In function 'bfs_spawn_action': src/alloc.h:154:10: error: implicit declaration of function 'alloc'; did you mean 'alloca'? [-Werror=implicit-function-declaration] (type *)alloc(alignof(type), sizeof(type)) ^ src/xspawn.c:144:36: note: in expansion of macro 'ALLOC' struct bfs_spawn_action *action = ALLOC(struct bfs_spawn_action); ^~~~~ src/alloc.h:154:2: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] (type *)alloc(alignof(type), sizeof(type)) ^ src/xspawn.c:144:36: note: in expansion of macro 'ALLOC' struct bfs_spawn_action *action = ALLOC(struct bfs_spawn_action); ^~~~~ In file included from src/xspawn.c:10:0: src/list.h:130:17: error: 'struct bfs_spawn_action' has no member named 'BFS_VA_IF_AB__VA_OPT__' LIST_VOID_(item->next = NULL) ^ src/list.h:116:33: note: in definition of macro 'LIST_VOID_' #define LIST_VOID_(...) ((void)(__VA_ARGS__)) ^~~~~~~~~~~ src/list.h:127:2: note: in expansion of macro 'SLIST_ITEM_INIT_' SLIST_ITEM_INIT_((item), LIST_NEXT_(__VA_ARGS__)) ^~~~~~~~~~~~~~~~ src/xspawn.c:149:2: note: in expansion of macro 'SLIST_ITEM_INIT' SLIST_ITEM_INIT(action); ^~~~~~~~~~~~~~~ src/bfs.h:77:51: error: 'C' undeclared (first use in this function) #define BFS_VA_IF(...) BFS_VA_IF_AB ## __VA_OPT__(C) ^ src/list.h:116:33: note: in definition of macro 'LIST_VOID_' #define LIST_VOID_(...) ((void)(__VA_ARGS__)) ^~~~~~~~~~~ src/list.h:127:2: note: in expansion of macro 'SLIST_ITEM_INIT_' SLIST_ITEM_INIT_((item), LIST_NEXT_(__VA_ARGS__)) ^~~~~~~~~~~~~~~~ src/list.h:139:2: note: in expansion of macro 'BFS_VA_IF' BFS_VA_IF(node)(node.next)(next) ^~~~~~~~~ src/list.h:127:27: note: in expansion of macro 'LIST_NEXT_' SLIST_ITEM_INIT_((item), LIST_NEXT_(__VA_ARGS__)) ^~~~~~~~~~ src/xspawn.c:149:2: note: in expansion of macro 'SLIST_ITEM_INIT' SLIST_ITEM_INIT(action); ^~~~~~~~~~~~~~~ src/list.h:139:22: error: expected expression before '.' token BFS_VA_IF(node)(node.next)(next) ^ src/list.h:116:33: note: in definition of macro 'LIST_VOID_' #define LIST_VOID_(...) ((void)(__VA_ARGS__)) ^~~~~~~~~~~ src/list.h:127:2: note: in expansion of macro 'SLIST_ITEM_INIT_' SLIST_ITEM_INIT_((item), LIST_NEXT_(__VA_ARGS__)) ^~~~~~~~~~~~~~~~ src/list.h:127:27: note: in expansion of macro 'LIST_NEXT_' SLIST_ITEM_INIT_((item), LIST_NEXT_(__VA_ARGS__)) ^~~~~~~~~~ src/xspawn.c:149:2: note: in expansion of macro 'SLIST_ITEM_INIT' SLIST_ITEM_INIT(action); ^~~~~~~~~~~~~~~ src/list.h:139:29: error: 'next' undeclared (first use in this function); did you mean 'exit'? BFS_VA_IF(node)(node.next)(next) ^ src/list.h:116:33: note: in definition of macro 'LIST_VOID_' #define LIST_VOID_(...) ((void)(__VA_ARGS__)) ^~~~~~~~~~~ src/list.h:127:2: note: in expansion of macro 'SLIST_ITEM_INIT_' SLIST_ITEM_INIT_((item), LIST_NEXT_(__VA_ARGS__)) ^~~~~~~~~~~~~~~~ src/list.h:127:27: note: in expansion of macro 'LIST_NEXT_' SLIST_ITEM_INIT_((item), LIST_NEXT_(__VA_ARGS__)) ^~~~~~~~~~ src/xspawn.c:149:2: note: in expansion of macro 'SLIST_ITEM_INIT' SLIST_ITEM_INIT(action); ^~~~~~~~~~~~~~~ In file included from tests/tests.h:11:0, from tests/alloc.c:4: src/bfs.h:77:24: error: implicit declaration of function 'BFS_VA_IF_AB__VA_OPT__'; did you mean 'BFS_VA_IF_ABC'? [-Werror=implicit-function-declaration] #define BFS_VA_IF(...) BFS_VA_IF_AB ## __VA_OPT__(C) ^ src/diag.h:96:22: note: in expansion of macro 'BFS_VA_IF' ((cond) ? (void)0 : BFS_VA_IF(__VA_ARGS__) \ ^~~~~~~~~ tests/alloc.c:21:2: note: in expansion of macro 'bfs_everify' bfs_everify(flexy); ^~~~~~~~~~~ src/xspawn.c: In function 'bfs_spawn_addopen': src/diag.h:70:41: error: implicit declaration of function '__VA_OPT__'; did you mean '__CHAR_BIT__'? [-Werror=implicit-function-declaration] (bfs_abort(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:70:4: note: in expansion of macro 'bfs_abort' (bfs_abort(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~~ src/diag.h:97:4: note: in expansion of macro 'bfs_eabort' (bfs_eabort(__VA_ARGS__)) \ ^~~~~~~~~~ src/xtime.c:498:3: note: in expansion of macro 'bfs_everify' bfs_everify(ret == 0, "timer_delete()"); ^~~~~~~~~~~ src/list.h:220:7: error: 'struct bfs_spawn_action' has no member named 'BFS_VA_IF_AB__VA_OPT__' item->next = *cursor, \ ^ src/list.h:116:33: note: in definition of macro 'LIST_VOID_' #define LIST_VOID_(...) ((void)(__VA_ARGS__)) ^~~~~~~~~~~ src/list.h:216:2: note: in expansion of macro 'SLIST_INSERT_' SLIST_INSERT_((list), (cursor), (item), LIST_NEXT_(__VA_ARGS__)) ^~~~~~~~~~~~~ src/list.h:236:13: note: in expansion of macro 'SLIST_INSERT' LIST_VOID_(SLIST_INSERT(list, (list)->tail, item, __VA_ARGS__)) ^~~~~~~~~~~~ src/xspawn.c:176:2: note: in expansion of macro 'SLIST_APPEND' SLIST_APPEND(ctx, action); ^~~~~~~~~~~~ src/diag.h:70:52: error: expected expression before ',' token (bfs_abort(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:70:4: note: in expansion of macro 'bfs_abort' (bfs_abort(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~~ src/diag.h:97:4: note: in expansion of macro 'bfs_eabort' (bfs_eabort(__VA_ARGS__)) \ ^~~~~~~~~~ src/xtime.c:498:3: note: in expansion of macro 'bfs_everify' bfs_everify(ret == 0, "timer_delete()"); ^~~~~~~~~~~ src/bfs.h:77:51: error: 'C' undeclared (first use in this function) #define BFS_VA_IF(...) BFS_VA_IF_AB ## __VA_OPT__(C) ^ src/diag.h:96:22: note: in expansion of macro 'BFS_VA_IF' ((cond) ? (void)0 : BFS_VA_IF(__VA_ARGS__) \ ^~~~~~~~~ tests/alloc.c:21:2: note: in expansion of macro 'bfs_everify' bfs_everify(flexy); ^~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:63:39: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_abortf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:71:4: note: in expansion of macro 'bfs_abort' (bfs_abort("%s", errstr())) ^~~~~~~~~ src/diag.h:97:4: note: in expansion of macro 'bfs_eabort' (bfs_eabort(__VA_ARGS__)) \ ^~~~~~~~~~ src/xtime.c:498:3: note: in expansion of macro 'bfs_everify' bfs_everify(ret == 0, "timer_delete()"); ^~~~~~~~~~~ src/bfs.h:77:51: note: each undeclared identifier is reported only once for each function it appears in #define BFS_VA_IF(...) BFS_VA_IF_AB ## __VA_OPT__(C) ^ src/diag.h:96:22: note: in expansion of macro 'BFS_VA_IF' ((cond) ? (void)0 : BFS_VA_IF(__VA_ARGS__) \ ^~~~~~~~~ tests/alloc.c:21:2: note: in expansion of macro 'bfs_everify' bfs_everify(flexy); ^~~~~~~~~~~ src/diag.h:70:41: error: expected ')' before '__VA_OPT__' (bfs_abort(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:70:4: note: in expansion of macro 'bfs_abort' (bfs_abort(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~~ src/diag.h:98:4: note: in expansion of macro 'bfs_eabort' (bfs_eabort("Assertion failed: `%s`", #cond))) ^~~~~~~~~~ src/xtime.c:498:3: note: in expansion of macro 'bfs_everify' bfs_everify(ret == 0, "timer_delete()"); ^~~~~~~~~~~ src/bfs.h:77:51: error: 'C' undeclared (first use in this function) #define BFS_VA_IF(...) BFS_VA_IF_AB ## __VA_OPT__(C) ^ src/list.h:116:33: note: in definition of macro 'LIST_VOID_' #define LIST_VOID_(...) ((void)(__VA_ARGS__)) ^~~~~~~~~~~ src/list.h:216:2: note: in expansion of macro 'SLIST_INSERT_' SLIST_INSERT_((list), (cursor), (item), LIST_NEXT_(__VA_ARGS__)) ^~~~~~~~~~~~~ src/list.h:139:2: note: in expansion of macro 'BFS_VA_IF' BFS_VA_IF(node)(node.next)(next) ^~~~~~~~~ src/list.h:216:42: note: in expansion of macro 'LIST_NEXT_' SLIST_INSERT_((list), (cursor), (item), LIST_NEXT_(__VA_ARGS__)) ^~~~~~~~~~ src/list.h:236:13: note: in expansion of macro 'SLIST_INSERT' LIST_VOID_(SLIST_INSERT(list, (list)->tail, item, __VA_ARGS__)) ^~~~~~~~~~~~ src/xspawn.c:176:2: note: in expansion of macro 'SLIST_APPEND' SLIST_APPEND(ctx, action); ^~~~~~~~~~~~ src/list.h:139:22: error: expected expression before '.' token BFS_VA_IF(node)(node.next)(next) ^ src/list.h:116:33: note: in definition of macro 'LIST_VOID_' #define LIST_VOID_(...) ((void)(__VA_ARGS__)) ^~~~~~~~~~~ src/list.h:216:2: note: in expansion of macro 'SLIST_INSERT_' SLIST_INSERT_((list), (cursor), (item), LIST_NEXT_(__VA_ARGS__)) ^~~~~~~~~~~~~ src/list.h:216:42: note: in expansion of macro 'LIST_NEXT_' SLIST_INSERT_((list), (cursor), (item), LIST_NEXT_(__VA_ARGS__)) ^~~~~~~~~~ src/list.h:236:13: note: in expansion of macro 'SLIST_INSERT' LIST_VOID_(SLIST_INSERT(list, (list)->tail, item, __VA_ARGS__)) ^~~~~~~~~~~~ src/xspawn.c:176:2: note: in expansion of macro 'SLIST_APPEND' SLIST_APPEND(ctx, action); ^~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:63:39: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_abortf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:71:4: note: in expansion of macro 'bfs_abort' (bfs_abort("%s", errstr())) ^~~~~~~~~ src/diag.h:98:4: note: in expansion of macro 'bfs_eabort' (bfs_eabort("Assertion failed: `%s`", #cond))) ^~~~~~~~~~ src/xtime.c:498:3: note: in expansion of macro 'bfs_everify' bfs_everify(ret == 0, "timer_delete()"); ^~~~~~~~~~~ src/list.h:139:29: error: 'next' undeclared (first use in this function); did you mean 'exit'? BFS_VA_IF(node)(node.next)(next) ^ src/list.h:116:33: note: in definition of macro 'LIST_VOID_' #define LIST_VOID_(...) ((void)(__VA_ARGS__)) ^~~~~~~~~~~ src/list.h:216:2: note: in expansion of macro 'SLIST_INSERT_' SLIST_INSERT_((list), (cursor), (item), LIST_NEXT_(__VA_ARGS__)) ^~~~~~~~~~~~~ src/list.h:216:42: note: in expansion of macro 'LIST_NEXT_' SLIST_INSERT_((list), (cursor), (item), LIST_NEXT_(__VA_ARGS__)) ^~~~~~~~~~ src/list.h:236:13: note: in expansion of macro 'SLIST_INSERT' LIST_VOID_(SLIST_INSERT(list, (list)->tail, item, __VA_ARGS__)) ^~~~~~~~~~~~ src/xspawn.c:176:2: note: in expansion of macro 'SLIST_APPEND' SLIST_APPEND(ctx, action); ^~~~~~~~~~~~ src/list.h:222:20: error: 'struct bfs_spawn_action' has no member named 'BFS_VA_IF_AB__VA_OPT__' list->tail = item->next ? list->tail : &item->next, \ ^ src/list.h:116:33: note: in definition of macro 'LIST_VOID_' #define LIST_VOID_(...) ((void)(__VA_ARGS__)) ^~~~~~~~~~~ src/list.h:216:2: note: in expansion of macro 'SLIST_INSERT_' SLIST_INSERT_((list), (cursor), (item), LIST_NEXT_(__VA_ARGS__)) ^~~~~~~~~~~~~ src/list.h:236:13: note: in expansion of macro 'SLIST_INSERT' LIST_VOID_(SLIST_INSERT(list, (list)->tail, item, __VA_ARGS__)) ^~~~~~~~~~~~ src/xspawn.c:176:2: note: in expansion of macro 'SLIST_APPEND' SLIST_APPEND(ctx, action); ^~~~~~~~~~~~ src/list.h:222:47: error: 'struct bfs_spawn_action' has no member named 'BFS_VA_IF_AB__VA_OPT__' list->tail = item->next ? list->tail : &item->next, \ ^ src/list.h:116:33: note: in definition of macro 'LIST_VOID_' #define LIST_VOID_(...) ((void)(__VA_ARGS__)) ^~~~~~~~~~~ src/list.h:216:2: note: in expansion of macro 'SLIST_INSERT_' SLIST_INSERT_((list), (cursor), (item), LIST_NEXT_(__VA_ARGS__)) ^~~~~~~~~~~~~ src/list.h:236:13: note: in expansion of macro 'SLIST_INSERT' LIST_VOID_(SLIST_INSERT(list, (list)->tail, item, __VA_ARGS__)) ^~~~~~~~~~~~ src/xspawn.c:176:2: note: in expansion of macro 'SLIST_APPEND' SLIST_APPEND(ctx, action); ^~~~~~~~~~~~ src/list.h:223:8: error: 'struct bfs_spawn_action' has no member named 'BFS_VA_IF_AB__VA_OPT__' &item->next) ^ src/list.h:116:33: note: in definition of macro 'LIST_VOID_' #define LIST_VOID_(...) ((void)(__VA_ARGS__)) ^~~~~~~~~~~ src/list.h:216:2: note: in expansion of macro 'SLIST_INSERT_' SLIST_INSERT_((list), (cursor), (item), LIST_NEXT_(__VA_ARGS__)) ^~~~~~~~~~~~~ src/list.h:236:13: note: in expansion of macro 'SLIST_INSERT' LIST_VOID_(SLIST_INSERT(list, (list)->tail, item, __VA_ARGS__)) ^~~~~~~~~~~~ src/xspawn.c:176:2: note: in expansion of macro 'SLIST_APPEND' SLIST_APPEND(ctx, action); ^~~~~~~~~~~~ src/xspawn.c: In function 'bfs_spawn_addclose': In file included from tests/tests.h:13:0, from tests/alloc.c:4: src/diag.h:63:2: error: implicit declaration of function 'bfs_abortf'; did you mean 'bfs_abort'? [-Werror=implicit-function-declaration] bfs_abortf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^ src/diag.h:70:4: note: in expansion of macro 'bfs_abort' (bfs_abort(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~~ src/diag.h:97:4: note: in expansion of macro 'bfs_eabort' (bfs_eabort(__VA_ARGS__)) \ ^~~~~~~~~~ tests/alloc.c:21:2: note: in expansion of macro 'bfs_everify' bfs_everify(flexy); ^~~~~~~~~~~ src/list.h:220:7: error: 'struct bfs_spawn_action' has no member named 'BFS_VA_IF_AB__VA_OPT__' item->next = *cursor, \ ^ src/list.h:116:33: note: in definition of macro 'LIST_VOID_' #define LIST_VOID_(...) ((void)(__VA_ARGS__)) ^~~~~~~~~~~ src/list.h:216:2: note: in expansion of macro 'SLIST_INSERT_' SLIST_INSERT_((list), (cursor), (item), LIST_NEXT_(__VA_ARGS__)) ^~~~~~~~~~~~~ src/list.h:236:13: note: in expansion of macro 'SLIST_INSERT' LIST_VOID_(SLIST_INSERT(list, (list)->tail, item, __VA_ARGS__)) ^~~~~~~~~~~~ src/xspawn.c:197:2: note: in expansion of macro 'SLIST_APPEND' SLIST_APPEND(ctx, action); ^~~~~~~~~~~~ src/bfs.h:77:51: error: 'C' undeclared (first use in this function) #define BFS_VA_IF(...) BFS_VA_IF_AB ## __VA_OPT__(C) ^ src/list.h:116:33: note: in definition of macro 'LIST_VOID_' #define LIST_VOID_(...) ((void)(__VA_ARGS__)) ^~~~~~~~~~~ src/list.h:216:2: note: in expansion of macro 'SLIST_INSERT_' SLIST_INSERT_((list), (cursor), (item), LIST_NEXT_(__VA_ARGS__)) ^~~~~~~~~~~~~ src/list.h:139:2: note: in expansion of macro 'BFS_VA_IF' BFS_VA_IF(node)(node.next)(next) ^~~~~~~~~ src/list.h:216:42: note: in expansion of macro 'LIST_NEXT_' SLIST_INSERT_((list), (cursor), (item), LIST_NEXT_(__VA_ARGS__)) ^~~~~~~~~~ src/list.h:236:13: note: in expansion of macro 'SLIST_INSERT' LIST_VOID_(SLIST_INSERT(list, (list)->tail, item, __VA_ARGS__)) ^~~~~~~~~~~~ src/xspawn.c:197:2: note: in expansion of macro 'SLIST_APPEND' SLIST_APPEND(ctx, action); ^~~~~~~~~~~~ src/list.h:139:22: error: expected expression before '.' token BFS_VA_IF(node)(node.next)(next) ^ src/list.h:116:33: note: in definition of macro 'LIST_VOID_' #define LIST_VOID_(...) ((void)(__VA_ARGS__)) ^~~~~~~~~~~ src/list.h:216:2: note: in expansion of macro 'SLIST_INSERT_' SLIST_INSERT_((list), (cursor), (item), LIST_NEXT_(__VA_ARGS__)) ^~~~~~~~~~~~~ src/list.h:216:42: note: in expansion of macro 'LIST_NEXT_' SLIST_INSERT_((list), (cursor), (item), LIST_NEXT_(__VA_ARGS__)) ^~~~~~~~~~ src/list.h:236:13: note: in expansion of macro 'SLIST_INSERT' LIST_VOID_(SLIST_INSERT(list, (list)->tail, item, __VA_ARGS__)) ^~~~~~~~~~~~ src/xspawn.c:197:2: note: in expansion of macro 'SLIST_APPEND' SLIST_APPEND(ctx, action); ^~~~~~~~~~~~ src/list.h:139:29: error: 'next' undeclared (first use in this function); did you mean 'exit'? BFS_VA_IF(node)(node.next)(next) ^ src/list.h:116:33: note: in definition of macro 'LIST_VOID_' #define LIST_VOID_(...) ((void)(__VA_ARGS__)) ^~~~~~~~~~~ src/list.h:216:2: note: in expansion of macro 'SLIST_INSERT_' SLIST_INSERT_((list), (cursor), (item), LIST_NEXT_(__VA_ARGS__)) ^~~~~~~~~~~~~ src/list.h:216:42: note: in expansion of macro 'LIST_NEXT_' SLIST_INSERT_((list), (cursor), (item), LIST_NEXT_(__VA_ARGS__)) ^~~~~~~~~~ src/list.h:236:13: note: in expansion of macro 'SLIST_INSERT' LIST_VOID_(SLIST_INSERT(list, (list)->tail, item, __VA_ARGS__)) ^~~~~~~~~~~~ src/xspawn.c:197:2: note: in expansion of macro 'SLIST_APPEND' SLIST_APPEND(ctx, action); ^~~~~~~~~~~~ src/list.h:222:20: error: 'struct bfs_spawn_action' has no member named 'BFS_VA_IF_AB__VA_OPT__' list->tail = item->next ? list->tail : &item->next, \ ^ src/list.h:116:33: note: in definition of macro 'LIST_VOID_' #define LIST_VOID_(...) ((void)(__VA_ARGS__)) ^~~~~~~~~~~ src/list.h:216:2: note: in expansion of macro 'SLIST_INSERT_' SLIST_INSERT_((list), (cursor), (item), LIST_NEXT_(__VA_ARGS__)) ^~~~~~~~~~~~~ src/list.h:236:13: note: in expansion of macro 'SLIST_INSERT' LIST_VOID_(SLIST_INSERT(list, (list)->tail, item, __VA_ARGS__)) ^~~~~~~~~~~~ src/xspawn.c:197:2: note: in expansion of macro 'SLIST_APPEND' SLIST_APPEND(ctx, action); ^~~~~~~~~~~~ src/list.h:222:47: error: 'struct bfs_spawn_action' has no member named 'BFS_VA_IF_AB__VA_OPT__' list->tail = item->next ? list->tail : &item->next, \ ^ src/list.h:116:33: note: in definition of macro 'LIST_VOID_' #define LIST_VOID_(...) ((void)(__VA_ARGS__)) ^~~~~~~~~~~ src/list.h:216:2: note: in expansion of macro 'SLIST_INSERT_' SLIST_INSERT_((list), (cursor), (item), LIST_NEXT_(__VA_ARGS__)) ^~~~~~~~~~~~~ src/list.h:236:13: note: in expansion of macro 'SLIST_INSERT' LIST_VOID_(SLIST_INSERT(list, (list)->tail, item, __VA_ARGS__)) ^~~~~~~~~~~~ src/xspawn.c:197:2: note: in expansion of macro 'SLIST_APPEND' SLIST_APPEND(ctx, action); ^~~~~~~~~~~~ src/list.h:223:8: error: 'struct bfs_spawn_action' has no member named 'BFS_VA_IF_AB__VA_OPT__' &item->next) ^ src/list.h:116:33: note: in definition of macro 'LIST_VOID_' #define LIST_VOID_(...) ((void)(__VA_ARGS__)) ^~~~~~~~~~~ src/list.h:216:2: note: in expansion of macro 'SLIST_INSERT_' SLIST_INSERT_((list), (cursor), (item), LIST_NEXT_(__VA_ARGS__)) ^~~~~~~~~~~~~ src/list.h:236:13: note: in expansion of macro 'SLIST_INSERT' LIST_VOID_(SLIST_INSERT(list, (list)->tail, item, __VA_ARGS__)) ^~~~~~~~~~~~ src/xspawn.c:197:2: note: in expansion of macro 'SLIST_APPEND' SLIST_APPEND(ctx, action); ^~~~~~~~~~~~ src/xspawn.c: In function 'bfs_spawn_adddup2': src/list.h:220:7: error: 'struct bfs_spawn_action' has no member named 'BFS_VA_IF_AB__VA_OPT__' item->next = *cursor, \ ^ src/list.h:116:33: note: in definition of macro 'LIST_VOID_' #define LIST_VOID_(...) ((void)(__VA_ARGS__)) ^~~~~~~~~~~ src/list.h:216:2: note: in expansion of macro 'SLIST_INSERT_' SLIST_INSERT_((list), (cursor), (item), LIST_NEXT_(__VA_ARGS__)) ^~~~~~~~~~~~~ src/list.h:236:13: note: in expansion of macro 'SLIST_INSERT' LIST_VOID_(SLIST_INSERT(list, (list)->tail, item, __VA_ARGS__)) ^~~~~~~~~~~~ src/xspawn.c:219:2: note: in expansion of macro 'SLIST_APPEND' SLIST_APPEND(ctx, action); ^~~~~~~~~~~~ src/bfs.h:77:51: error: 'C' undeclared (first use in this function) #define BFS_VA_IF(...) BFS_VA_IF_AB ## __VA_OPT__(C) ^ src/list.h:116:33: note: in definition of macro 'LIST_VOID_' #define LIST_VOID_(...) ((void)(__VA_ARGS__)) ^~~~~~~~~~~ src/list.h:216:2: note: in expansion of macro 'SLIST_INSERT_' SLIST_INSERT_((list), (cursor), (item), LIST_NEXT_(__VA_ARGS__)) ^~~~~~~~~~~~~ src/list.h:139:2: note: in expansion of macro 'BFS_VA_IF' BFS_VA_IF(node)(node.next)(next) ^~~~~~~~~ src/list.h:216:42: note: in expansion of macro 'LIST_NEXT_' SLIST_INSERT_((list), (cursor), (item), LIST_NEXT_(__VA_ARGS__)) ^~~~~~~~~~ src/list.h:236:13: note: in expansion of macro 'SLIST_INSERT' LIST_VOID_(SLIST_INSERT(list, (list)->tail, item, __VA_ARGS__)) ^~~~~~~~~~~~ src/xspawn.c:219:2: note: in expansion of macro 'SLIST_APPEND' SLIST_APPEND(ctx, action); ^~~~~~~~~~~~ src/diag.h:70:41: error: implicit declaration of function '__VA_OPT__'; did you mean '__CHAR_BIT__'? [-Werror=implicit-function-declaration] (bfs_abort(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:70:4: note: in expansion of macro 'bfs_abort' (bfs_abort(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~~ src/diag.h:97:4: note: in expansion of macro 'bfs_eabort' (bfs_eabort(__VA_ARGS__)) \ ^~~~~~~~~~ tests/alloc.c:21:2: note: in expansion of macro 'bfs_everify' bfs_everify(flexy); ^~~~~~~~~~~ src/list.h:139:22: error: expected expression before '.' token BFS_VA_IF(node)(node.next)(next) ^ src/list.h:116:33: note: in definition of macro 'LIST_VOID_' #define LIST_VOID_(...) ((void)(__VA_ARGS__)) ^~~~~~~~~~~ src/list.h:216:2: note: in expansion of macro 'SLIST_INSERT_' SLIST_INSERT_((list), (cursor), (item), LIST_NEXT_(__VA_ARGS__)) ^~~~~~~~~~~~~ src/list.h:216:42: note: in expansion of macro 'LIST_NEXT_' SLIST_INSERT_((list), (cursor), (item), LIST_NEXT_(__VA_ARGS__)) ^~~~~~~~~~ src/list.h:236:13: note: in expansion of macro 'SLIST_INSERT' LIST_VOID_(SLIST_INSERT(list, (list)->tail, item, __VA_ARGS__)) ^~~~~~~~~~~~ src/xspawn.c:219:2: note: in expansion of macro 'SLIST_APPEND' SLIST_APPEND(ctx, action); ^~~~~~~~~~~~ src/diag.h:70:52: error: expected expression before ',' token (bfs_abort(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:70:4: note: in expansion of macro 'bfs_abort' (bfs_abort(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~~ src/diag.h:97:4: note: in expansion of macro 'bfs_eabort' (bfs_eabort(__VA_ARGS__)) \ ^~~~~~~~~~ tests/alloc.c:21:2: note: in expansion of macro 'bfs_everify' bfs_everify(flexy); ^~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:63:39: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_abortf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:71:4: note: in expansion of macro 'bfs_abort' (bfs_abort("%s", errstr())) ^~~~~~~~~ src/diag.h:97:4: note: in expansion of macro 'bfs_eabort' (bfs_eabort(__VA_ARGS__)) \ ^~~~~~~~~~ tests/alloc.c:21:2: note: in expansion of macro 'bfs_everify' bfs_everify(flexy); ^~~~~~~~~~~ cc1: some warnings being treated as errors src/list.h:139:29: error: 'next' undeclared (first use in this function); did you mean 'exit'? BFS_VA_IF(node)(node.next)(next) ^ src/list.h:116:33: note: in definition of macro 'LIST_VOID_' #define LIST_VOID_(...) ((void)(__VA_ARGS__)) ^~~~~~~~~~~ src/list.h:216:2: note: in expansion of macro 'SLIST_INSERT_' SLIST_INSERT_((list), (cursor), (item), LIST_NEXT_(__VA_ARGS__)) ^~~~~~~~~~~~~ src/list.h:216:42: note: in expansion of macro 'LIST_NEXT_' SLIST_INSERT_((list), (cursor), (item), LIST_NEXT_(__VA_ARGS__)) ^~~~~~~~~~ src/list.h:236:13: note: in expansion of macro 'SLIST_INSERT' LIST_VOID_(SLIST_INSERT(list, (list)->tail, item, __VA_ARGS__)) ^~~~~~~~~~~~ src/xspawn.c:219:2: note: in expansion of macro 'SLIST_APPEND' SLIST_APPEND(ctx, action); ^~~~~~~~~~~~ src/diag.h:70:41: error: expected ')' before '__VA_OPT__' (bfs_abort(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:70:4: note: in expansion of macro 'bfs_abort' (bfs_abort(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~~ src/diag.h:98:4: note: in expansion of macro 'bfs_eabort' (bfs_eabort("Assertion failed: `%s`", #cond))) ^~~~~~~~~~ tests/alloc.c:21:2: note: in expansion of macro 'bfs_everify' bfs_everify(flexy); ^~~~~~~~~~~ src/list.h:222:20: error: 'struct bfs_spawn_action' has no member named 'BFS_VA_IF_AB__VA_OPT__' list->tail = item->next ? list->tail : &item->next, \ ^ src/list.h:116:33: note: in definition of macro 'LIST_VOID_' #define LIST_VOID_(...) ((void)(__VA_ARGS__)) ^~~~~~~~~~~ src/list.h:216:2: note: in expansion of macro 'SLIST_INSERT_' SLIST_INSERT_((list), (cursor), (item), LIST_NEXT_(__VA_ARGS__)) ^~~~~~~~~~~~~ src/list.h:236:13: note: in expansion of macro 'SLIST_INSERT' LIST_VOID_(SLIST_INSERT(list, (list)->tail, item, __VA_ARGS__)) ^~~~~~~~~~~~ src/xspawn.c:219:2: note: in expansion of macro 'SLIST_APPEND' SLIST_APPEND(ctx, action); ^~~~~~~~~~~~ src/list.h:222:47: error: 'struct bfs_spawn_action' has no member named 'BFS_VA_IF_AB__VA_OPT__' list->tail = item->next ? list->tail : &item->next, \ ^ src/list.h:116:33: note: in definition of macro 'LIST_VOID_' #define LIST_VOID_(...) ((void)(__VA_ARGS__)) ^~~~~~~~~~~ src/list.h:216:2: note: in expansion of macro 'SLIST_INSERT_' SLIST_INSERT_((list), (cursor), (item), LIST_NEXT_(__VA_ARGS__)) ^~~~~~~~~~~~~ src/list.h:236:13: note: in expansion of macro 'SLIST_INSERT' LIST_VOID_(SLIST_INSERT(list, (list)->tail, item, __VA_ARGS__)) ^~~~~~~~~~~~ src/xspawn.c:219:2: note: in expansion of macro 'SLIST_APPEND' SLIST_APPEND(ctx, action); ^~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:63:39: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_abortf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:71:4: note: in expansion of macro 'bfs_abort' (bfs_abort("%s", errstr())) ^~~~~~~~~ src/diag.h:98:4: note: in expansion of macro 'bfs_eabort' (bfs_eabort("Assertion failed: `%s`", #cond))) ^~~~~~~~~~ tests/alloc.c:21:2: note: in expansion of macro 'bfs_everify' bfs_everify(flexy); ^~~~~~~~~~~ src/list.h:223:8: error: 'struct bfs_spawn_action' has no member named 'BFS_VA_IF_AB__VA_OPT__' &item->next) ^ src/list.h:116:33: note: in definition of macro 'LIST_VOID_' #define LIST_VOID_(...) ((void)(__VA_ARGS__)) ^~~~~~~~~~~ src/list.h:216:2: note: in expansion of macro 'SLIST_INSERT_' SLIST_INSERT_((list), (cursor), (item), LIST_NEXT_(__VA_ARGS__)) ^~~~~~~~~~~~~ src/list.h:236:13: note: in expansion of macro 'SLIST_INSERT' LIST_VOID_(SLIST_INSERT(list, (list)->tail, item, __VA_ARGS__)) ^~~~~~~~~~~~ src/xspawn.c:219:2: note: in expansion of macro 'SLIST_APPEND' SLIST_APPEND(ctx, action); ^~~~~~~~~~~~ src/xspawn.c: In function 'bfs_spawn_addfchdir': src/list.h:220:7: error: 'struct bfs_spawn_action' has no member named 'BFS_VA_IF_AB__VA_OPT__' item->next = *cursor, \ ^ src/list.h:116:33: note: in definition of macro 'LIST_VOID_' #define LIST_VOID_(...) ((void)(__VA_ARGS__)) ^~~~~~~~~~~ src/list.h:216:2: note: in expansion of macro 'SLIST_INSERT_' SLIST_INSERT_((list), (cursor), (item), LIST_NEXT_(__VA_ARGS__)) ^~~~~~~~~~~~~ src/list.h:236:13: note: in expansion of macro 'SLIST_INSERT' LIST_VOID_(SLIST_INSERT(list, (list)->tail, item, __VA_ARGS__)) ^~~~~~~~~~~~ src/xspawn.c:277:2: note: in expansion of macro 'SLIST_APPEND' SLIST_APPEND(ctx, action); ^~~~~~~~~~~~ src/bfs.h:77:51: error: 'C' undeclared (first use in this function) #define BFS_VA_IF(...) BFS_VA_IF_AB ## __VA_OPT__(C) ^ src/list.h:116:33: note: in definition of macro 'LIST_VOID_' #define LIST_VOID_(...) ((void)(__VA_ARGS__)) ^~~~~~~~~~~ src/list.h:216:2: note: in expansion of macro 'SLIST_INSERT_' SLIST_INSERT_((list), (cursor), (item), LIST_NEXT_(__VA_ARGS__)) ^~~~~~~~~~~~~ src/list.h:139:2: note: in expansion of macro 'BFS_VA_IF' BFS_VA_IF(node)(node.next)(next) ^~~~~~~~~ src/list.h:216:42: note: in expansion of macro 'LIST_NEXT_' SLIST_INSERT_((list), (cursor), (item), LIST_NEXT_(__VA_ARGS__)) ^~~~~~~~~~ src/list.h:236:13: note: in expansion of macro 'SLIST_INSERT' LIST_VOID_(SLIST_INSERT(list, (list)->tail, item, __VA_ARGS__)) ^~~~~~~~~~~~ src/xspawn.c:277:2: note: in expansion of macro 'SLIST_APPEND' SLIST_APPEND(ctx, action); ^~~~~~~~~~~~ src/list.h:139:22: error: expected expression before '.' token BFS_VA_IF(node)(node.next)(next) ^ src/list.h:116:33: note: in definition of macro 'LIST_VOID_' #define LIST_VOID_(...) ((void)(__VA_ARGS__)) ^~~~~~~~~~~ src/list.h:216:2: note: in expansion of macro 'SLIST_INSERT_' SLIST_INSERT_((list), (cursor), (item), LIST_NEXT_(__VA_ARGS__)) ^~~~~~~~~~~~~ src/list.h:216:42: note: in expansion of macro 'LIST_NEXT_' SLIST_INSERT_((list), (cursor), (item), LIST_NEXT_(__VA_ARGS__)) ^~~~~~~~~~ src/list.h:236:13: note: in expansion of macro 'SLIST_INSERT' LIST_VOID_(SLIST_INSERT(list, (list)->tail, item, __VA_ARGS__)) ^~~~~~~~~~~~ src/xspawn.c:277:2: note: in expansion of macro 'SLIST_APPEND' SLIST_APPEND(ctx, action); ^~~~~~~~~~~~ src/diag.h:41:2: error: implicit declaration of function 'bfs_diagf'; did you mean 'bfs_diag'? [-Werror=implicit-function-declaration] bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^ tests/tests.h:53:4: note: in expansion of macro 'bfs_diag' (bfs_diag(__VA_ARGS__)) \ ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/alloc.c:25:4: note: in expansion of macro 'bfs_check' bfs_check(flexy->bar[i] == (int)i); ^~~~~~~~~ src/diag.h:23:10: error: expected expression before ')' token ((format) ? "%s: %s@%s:%d: " format "%s" : "") ^ src/diag.h:41:12: note: in expansion of macro 'BFS_DIAG_FORMAT_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~~~ tests/tests.h:53:4: note: in expansion of macro 'bfs_diag' (bfs_diag(__VA_ARGS__)) \ ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/alloc.c:25:4: note: in expansion of macro 'bfs_check' bfs_check(flexy->bar[i] == (int)i); ^~~~~~~~~ src/list.h:139:29: error: 'next' undeclared (first use in this function); did you mean 'exit'? BFS_VA_IF(node)(node.next)(next) ^ src/list.h:116:33: note: in definition of macro 'LIST_VOID_' #define LIST_VOID_(...) ((void)(__VA_ARGS__)) ^~~~~~~~~~~ src/list.h:216:2: note: in expansion of macro 'SLIST_INSERT_' SLIST_INSERT_((list), (cursor), (item), LIST_NEXT_(__VA_ARGS__)) ^~~~~~~~~~~~~ src/list.h:216:42: note: in expansion of macro 'LIST_NEXT_' SLIST_INSERT_((list), (cursor), (item), LIST_NEXT_(__VA_ARGS__)) ^~~~~~~~~~ src/list.h:236:13: note: in expansion of macro 'SLIST_INSERT' LIST_VOID_(SLIST_INSERT(list, (list)->tail, item, __VA_ARGS__)) ^~~~~~~~~~~~ src/xspawn.c:277:2: note: in expansion of macro 'SLIST_APPEND' SLIST_APPEND(ctx, action); ^~~~~~~~~~~~ src/list.h:222:20: error: 'struct bfs_spawn_action' has no member named 'BFS_VA_IF_AB__VA_OPT__' list->tail = item->next ? list->tail : &item->next, \ ^ src/list.h:116:33: note: in definition of macro 'LIST_VOID_' #define LIST_VOID_(...) ((void)(__VA_ARGS__)) ^~~~~~~~~~~ src/list.h:216:2: note: in expansion of macro 'SLIST_INSERT_' SLIST_INSERT_((list), (cursor), (item), LIST_NEXT_(__VA_ARGS__)) ^~~~~~~~~~~~~ src/list.h:236:13: note: in expansion of macro 'SLIST_INSERT' LIST_VOID_(SLIST_INSERT(list, (list)->tail, item, __VA_ARGS__)) ^~~~~~~~~~~~ src/xspawn.c:277:2: note: in expansion of macro 'SLIST_APPEND' SLIST_APPEND(ctx, action); ^~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:54:4: note: in expansion of macro 'bfs_diag' (bfs_diag("Check failed: `%s`", str)) ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/alloc.c:25:4: note: in expansion of macro 'bfs_check' bfs_check(flexy->bar[i] == (int)i); ^~~~~~~~~ src/list.h:222:47: error: 'struct bfs_spawn_action' has no member named 'BFS_VA_IF_AB__VA_OPT__' list->tail = item->next ? list->tail : &item->next, \ ^ src/list.h:116:33: note: in definition of macro 'LIST_VOID_' #define LIST_VOID_(...) ((void)(__VA_ARGS__)) ^~~~~~~~~~~ src/list.h:216:2: note: in expansion of macro 'SLIST_INSERT_' SLIST_INSERT_((list), (cursor), (item), LIST_NEXT_(__VA_ARGS__)) ^~~~~~~~~~~~~ src/list.h:236:13: note: in expansion of macro 'SLIST_INSERT' LIST_VOID_(SLIST_INSERT(list, (list)->tail, item, __VA_ARGS__)) ^~~~~~~~~~~~ src/xspawn.c:277:2: note: in expansion of macro 'SLIST_APPEND' SLIST_APPEND(ctx, action); ^~~~~~~~~~~~ src/list.h:223:8: error: 'struct bfs_spawn_action' has no member named 'BFS_VA_IF_AB__VA_OPT__' &item->next) ^ src/list.h:116:33: note: in definition of macro 'LIST_VOID_' #define LIST_VOID_(...) ((void)(__VA_ARGS__)) ^~~~~~~~~~~ src/list.h:216:2: note: in expansion of macro 'SLIST_INSERT_' SLIST_INSERT_((list), (cursor), (item), LIST_NEXT_(__VA_ARGS__)) ^~~~~~~~~~~~~ src/list.h:236:13: note: in expansion of macro 'SLIST_INSERT' LIST_VOID_(SLIST_INSERT(list, (list)->tail, item, __VA_ARGS__)) ^~~~~~~~~~~~ src/xspawn.c:277:2: note: in expansion of macro 'SLIST_APPEND' SLIST_APPEND(ctx, action); ^~~~~~~~~~~~ src/xspawn.c: In function 'bfs_spawn_setrlimit': src/list.h:220:7: error: 'struct bfs_spawn_action' has no member named 'BFS_VA_IF_AB__VA_OPT__' item->next = *cursor, \ ^ src/list.h:116:33: note: in definition of macro 'LIST_VOID_' #define LIST_VOID_(...) ((void)(__VA_ARGS__)) ^~~~~~~~~~~ src/list.h:216:2: note: in expansion of macro 'SLIST_INSERT_' SLIST_INSERT_((list), (cursor), (item), LIST_NEXT_(__VA_ARGS__)) ^~~~~~~~~~~~~ src/list.h:236:13: note: in expansion of macro 'SLIST_INSERT' LIST_VOID_(SLIST_INSERT(list, (list)->tail, item, __VA_ARGS__)) ^~~~~~~~~~~~ src/xspawn.c:306:2: note: in expansion of macro 'SLIST_APPEND' SLIST_APPEND(ctx, action); ^~~~~~~~~~~~ tests/alloc.c: In function 'check_alloc': tests/alloc.c:37:21: error: implicit declaration of function 'zalloc'; did you mean 'valloc'? [-Werror=implicit-function-declaration] bfs_everify((ptr = zalloc(64, 129))); ^ src/diag.h:96:4: note: in definition of macro 'bfs_everify' ((cond) ? (void)0 : BFS_VA_IF(__VA_ARGS__) \ ^~~~ tests/alloc.c:37:19: warning: assignment makes pointer from integer without a cast [-Wint-conversion] bfs_everify((ptr = zalloc(64, 129))); ^ src/diag.h:96:4: note: in definition of macro 'bfs_everify' ((cond) ? (void)0 : BFS_VA_IF(__VA_ARGS__) \ ^~~~ src/bfs.h:77:51: error: 'C' undeclared (first use in this function) #define BFS_VA_IF(...) BFS_VA_IF_AB ## __VA_OPT__(C) ^ src/list.h:116:33: note: in definition of macro 'LIST_VOID_' #define LIST_VOID_(...) ((void)(__VA_ARGS__)) ^~~~~~~~~~~ src/list.h:216:2: note: in expansion of macro 'SLIST_INSERT_' SLIST_INSERT_((list), (cursor), (item), LIST_NEXT_(__VA_ARGS__)) ^~~~~~~~~~~~~ src/list.h:139:2: note: in expansion of macro 'BFS_VA_IF' BFS_VA_IF(node)(node.next)(next) ^~~~~~~~~ src/list.h:216:42: note: in expansion of macro 'LIST_NEXT_' SLIST_INSERT_((list), (cursor), (item), LIST_NEXT_(__VA_ARGS__)) ^~~~~~~~~~ src/list.h:236:13: note: in expansion of macro 'SLIST_INSERT' LIST_VOID_(SLIST_INSERT(list, (list)->tail, item, __VA_ARGS__)) ^~~~~~~~~~~~ src/xspawn.c:306:2: note: in expansion of macro 'SLIST_APPEND' SLIST_APPEND(ctx, action); ^~~~~~~~~~~~ src/list.h:139:22: error: expected expression before '.' token BFS_VA_IF(node)(node.next)(next) ^ src/list.h:116:33: note: in definition of macro 'LIST_VOID_' #define LIST_VOID_(...) ((void)(__VA_ARGS__)) ^~~~~~~~~~~ src/list.h:216:2: note: in expansion of macro 'SLIST_INSERT_' SLIST_INSERT_((list), (cursor), (item), LIST_NEXT_(__VA_ARGS__)) ^~~~~~~~~~~~~ src/list.h:216:42: note: in expansion of macro 'LIST_NEXT_' SLIST_INSERT_((list), (cursor), (item), LIST_NEXT_(__VA_ARGS__)) ^~~~~~~~~~ src/list.h:236:13: note: in expansion of macro 'SLIST_INSERT' LIST_VOID_(SLIST_INSERT(list, (list)->tail, item, __VA_ARGS__)) ^~~~~~~~~~~~ src/xspawn.c:306:2: note: in expansion of macro 'SLIST_APPEND' SLIST_APPEND(ctx, action); ^~~~~~~~~~~~ In file included from tests/tests.h:11:0, from tests/alloc.c:4: src/bfs.h:77:51: error: 'C' undeclared (first use in this function) #define BFS_VA_IF(...) BFS_VA_IF_AB ## __VA_OPT__(C) ^ src/diag.h:96:22: note: in expansion of macro 'BFS_VA_IF' ((cond) ? (void)0 : BFS_VA_IF(__VA_ARGS__) \ ^~~~~~~~~ tests/alloc.c:37:2: note: in expansion of macro 'bfs_everify' bfs_everify((ptr = zalloc(64, 129))); ^~~~~~~~~~~ src/list.h:139:29: error: 'next' undeclared (first use in this function); did you mean 'exit'? BFS_VA_IF(node)(node.next)(next) ^ src/list.h:116:33: note: in definition of macro 'LIST_VOID_' #define LIST_VOID_(...) ((void)(__VA_ARGS__)) ^~~~~~~~~~~ src/list.h:216:2: note: in expansion of macro 'SLIST_INSERT_' SLIST_INSERT_((list), (cursor), (item), LIST_NEXT_(__VA_ARGS__)) ^~~~~~~~~~~~~ src/list.h:216:42: note: in expansion of macro 'LIST_NEXT_' SLIST_INSERT_((list), (cursor), (item), LIST_NEXT_(__VA_ARGS__)) ^~~~~~~~~~ src/list.h:236:13: note: in expansion of macro 'SLIST_INSERT' LIST_VOID_(SLIST_INSERT(list, (list)->tail, item, __VA_ARGS__)) ^~~~~~~~~~~~ src/xspawn.c:306:2: note: in expansion of macro 'SLIST_APPEND' SLIST_APPEND(ctx, action); ^~~~~~~~~~~~ In file included from tests/tests.h:13:0, from tests/alloc.c:4: src/diag.h:70:52: error: expected expression before ',' token (bfs_abort(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:70:4: note: in expansion of macro 'bfs_abort' (bfs_abort(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~~ src/diag.h:97:4: note: in expansion of macro 'bfs_eabort' (bfs_eabort(__VA_ARGS__)) \ ^~~~~~~~~~ tests/alloc.c:37:2: note: in expansion of macro 'bfs_everify' bfs_everify((ptr = zalloc(64, 129))); ^~~~~~~~~~~ src/list.h:222:20: error: 'struct bfs_spawn_action' has no member named 'BFS_VA_IF_AB__VA_OPT__' list->tail = item->next ? list->tail : &item->next, \ ^ src/list.h:116:33: note: in definition of macro 'LIST_VOID_' #define LIST_VOID_(...) ((void)(__VA_ARGS__)) ^~~~~~~~~~~ src/list.h:216:2: note: in expansion of macro 'SLIST_INSERT_' SLIST_INSERT_((list), (cursor), (item), LIST_NEXT_(__VA_ARGS__)) ^~~~~~~~~~~~~ src/list.h:236:13: note: in expansion of macro 'SLIST_INSERT' LIST_VOID_(SLIST_INSERT(list, (list)->tail, item, __VA_ARGS__)) ^~~~~~~~~~~~ src/xspawn.c:306:2: note: in expansion of macro 'SLIST_APPEND' SLIST_APPEND(ctx, action); ^~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:63:39: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_abortf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:71:4: note: in expansion of macro 'bfs_abort' (bfs_abort("%s", errstr())) ^~~~~~~~~ src/diag.h:97:4: note: in expansion of macro 'bfs_eabort' (bfs_eabort(__VA_ARGS__)) \ ^~~~~~~~~~ tests/alloc.c:37:2: note: in expansion of macro 'bfs_everify' bfs_everify((ptr = zalloc(64, 129))); ^~~~~~~~~~~ src/list.h:222:47: error: 'struct bfs_spawn_action' has no member named 'BFS_VA_IF_AB__VA_OPT__' list->tail = item->next ? list->tail : &item->next, \ ^ src/list.h:116:33: note: in definition of macro 'LIST_VOID_' #define LIST_VOID_(...) ((void)(__VA_ARGS__)) ^~~~~~~~~~~ src/list.h:216:2: note: in expansion of macro 'SLIST_INSERT_' SLIST_INSERT_((list), (cursor), (item), LIST_NEXT_(__VA_ARGS__)) ^~~~~~~~~~~~~ src/list.h:236:13: note: in expansion of macro 'SLIST_INSERT' LIST_VOID_(SLIST_INSERT(list, (list)->tail, item, __VA_ARGS__)) ^~~~~~~~~~~~ src/xspawn.c:306:2: note: in expansion of macro 'SLIST_APPEND' SLIST_APPEND(ctx, action); ^~~~~~~~~~~~ src/list.h:223:8: error: 'struct bfs_spawn_action' has no member named 'BFS_VA_IF_AB__VA_OPT__' &item->next) ^ src/list.h:116:33: note: in definition of macro 'LIST_VOID_' #define LIST_VOID_(...) ((void)(__VA_ARGS__)) ^~~~~~~~~~~ src/list.h:216:2: note: in expansion of macro 'SLIST_INSERT_' SLIST_INSERT_((list), (cursor), (item), LIST_NEXT_(__VA_ARGS__)) ^~~~~~~~~~~~~ src/list.h:236:13: note: in expansion of macro 'SLIST_INSERT' LIST_VOID_(SLIST_INSERT(list, (list)->tail, item, __VA_ARGS__)) ^~~~~~~~~~~~ src/xspawn.c:306:2: note: in expansion of macro 'SLIST_APPEND' SLIST_APPEND(ctx, action); ^~~~~~~~~~~~ src/diag.h:70:41: error: expected ')' before '__VA_OPT__' (bfs_abort(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:70:4: note: in expansion of macro 'bfs_abort' (bfs_abort(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~~ src/diag.h:98:4: note: in expansion of macro 'bfs_eabort' (bfs_eabort("Assertion failed: `%s`", #cond))) ^~~~~~~~~~ tests/alloc.c:37:2: note: in expansion of macro 'bfs_everify' bfs_everify((ptr = zalloc(64, 129))); ^~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:63:39: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_abortf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:71:4: note: in expansion of macro 'bfs_abort' (bfs_abort("%s", errstr())) ^~~~~~~~~ src/diag.h:98:4: note: in expansion of macro 'bfs_eabort' (bfs_eabort("Assertion failed: `%s`", #cond))) ^~~~~~~~~~ tests/alloc.c:37:2: note: in expansion of macro 'bfs_everify' bfs_everify((ptr = zalloc(64, 129))); ^~~~~~~~~~~ src/diag.h:23:10: error: expected expression before ')' token ((format) ? "%s: %s@%s:%d: " format "%s" : "") ^ src/diag.h:41:12: note: in expansion of macro 'BFS_DIAG_FORMAT_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~~~ tests/tests.h:53:4: note: in expansion of macro 'bfs_diag' (bfs_diag(__VA_ARGS__)) \ ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/alloc.c:38:2: note: in expansion of macro 'bfs_check' bfs_check((uintptr_t)ptr % 64 == 0); ^~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:54:4: note: in expansion of macro 'bfs_diag' (bfs_diag("Check failed: `%s`", str)) ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/alloc.c:38:2: note: in expansion of macro 'bfs_check' bfs_check((uintptr_t)ptr % 64 == 0); ^~~~~~~~~ src/xspawn.c: In function 'bfs_spawn_will_chdir': src/list.h:340:28: error: 'const struct bfs_spawn_action' has no member named 'BFS_VA_IF_AB__VA_OPT__' item && (_next = item->next, true); \ ^ src/list.h:336:2: note: in expansion of macro 'for_slist_' for_slist_(type, item, (list), LIST_NEXT_(__VA_ARGS__)) ^~~~~~~~~~ src/xspawn.c:428:3: note: in expansion of macro 'for_slist' for_slist (const struct bfs_spawn_action, action, ctx) { ^~~~~~~~~ src/bfs.h:77:51: error: 'C' undeclared (first use in this function) #define BFS_VA_IF(...) BFS_VA_IF_AB ## __VA_OPT__(C) ^ src/list.h:340:30: note: in definition of macro 'for_slist_' item && (_next = item->next, true); \ ^~~~ src/list.h:139:2: note: in expansion of macro 'BFS_VA_IF' BFS_VA_IF(node)(node.next)(next) ^~~~~~~~~ src/list.h:336:33: note: in expansion of macro 'LIST_NEXT_' for_slist_(type, item, (list), LIST_NEXT_(__VA_ARGS__)) ^~~~~~~~~~ src/xspawn.c:428:3: note: in expansion of macro 'for_slist' for_slist (const struct bfs_spawn_action, action, ctx) { ^~~~~~~~~ In file included from tests/alloc.c:4:0: tests/alloc.c:39:20: error: implicit declaration of function 'xrealloc'; did you mean 'realloc'? [-Werror=implicit-function-declaration] bfs_echeck((ptr = xrealloc(ptr, 64, 129, 65))); ^ tests/tests.h:60:18: note: in definition of macro 'bfs_echeck' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~ src/list.h:139:22: error: expected expression before '.' token BFS_VA_IF(node)(node.next)(next) ^ src/list.h:340:30: note: in definition of macro 'for_slist_' item && (_next = item->next, true); \ ^~~~ src/list.h:336:33: note: in expansion of macro 'LIST_NEXT_' for_slist_(type, item, (list), LIST_NEXT_(__VA_ARGS__)) ^~~~~~~~~~ src/xspawn.c:428:3: note: in expansion of macro 'for_slist' for_slist (const struct bfs_spawn_action, action, ctx) { ^~~~~~~~~ tests/alloc.c:39:18: warning: assignment makes pointer from integer without a cast [-Wint-conversion] bfs_echeck((ptr = xrealloc(ptr, 64, 129, 65))); ^ tests/tests.h:60:18: note: in definition of macro 'bfs_echeck' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~ In file included from tests/tests.h:13:0, from tests/alloc.c:4: src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/alloc.c:39:2: note: in expansion of macro 'bfs_echeck' bfs_echeck((ptr = xrealloc(ptr, 64, 129, 65))); ^~~~~~~~~~ src/list.h:139:29: error: 'next' undeclared (first use in this function); did you mean '_next'? BFS_VA_IF(node)(node.next)(next) ^ src/list.h:340:30: note: in definition of macro 'for_slist_' item && (_next = item->next, true); \ ^~~~ src/list.h:336:33: note: in expansion of macro 'LIST_NEXT_' for_slist_(type, item, (list), LIST_NEXT_(__VA_ARGS__)) ^~~~~~~~~~ src/xspawn.c:428:3: note: in expansion of macro 'for_slist' for_slist (const struct bfs_spawn_action, action, ctx) { ^~~~~~~~~ gmake: *** [Makefile:237: obj/src/xtime.o] Error 1 src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/alloc.c:39:2: note: in expansion of macro 'bfs_echeck' bfs_echeck((ptr = xrealloc(ptr, 64, 129, 65))); ^~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/alloc.c:39:2: note: in expansion of macro 'bfs_echeck' bfs_echeck((ptr = xrealloc(ptr, 64, 129, 65))); ^~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/alloc.c:39:2: note: in expansion of macro 'bfs_echeck' bfs_echeck((ptr = xrealloc(ptr, 64, 129, 65))); ^~~~~~~~~~ src/diag.h:23:10: error: expected expression before ')' token ((format) ? "%s: %s@%s:%d: " format "%s" : "") ^ src/diag.h:41:12: note: in expansion of macro 'BFS_DIAG_FORMAT_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~~~ tests/tests.h:53:4: note: in expansion of macro 'bfs_diag' (bfs_diag(__VA_ARGS__)) \ ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/alloc.c:40:2: note: in expansion of macro 'bfs_check' bfs_check((uintptr_t)ptr % 64 == 0); ^~~~~~~~~ src/xspawn.c: At top level: src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:54:4: note: in expansion of macro 'bfs_diag' (bfs_diag("Check failed: `%s`", str)) ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/alloc.c:40:2: note: in expansion of macro 'bfs_check' bfs_check((uintptr_t)ptr % 64 == 0); ^~~~~~~~~ src/xspawn.c:589:1: error: expected identifier or '(' before '[' token [[_noreturn]] ^ src/diag.h:23:10: error: expected expression before ')' token ((format) ? "%s: %s@%s:%d: " format "%s" : "") ^ src/diag.h:41:12: note: in expansion of macro 'BFS_DIAG_FORMAT_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~~~ tests/tests.h:53:4: note: in expansion of macro 'bfs_diag' (bfs_diag(__VA_ARGS__)) \ ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/alloc.c:44:2: note: in expansion of macro 'bfs_check' bfs_check(sizeof_flex(struct flexible, bar, 0) >= sizeof(struct flexible)); ^~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:54:4: note: in expansion of macro 'bfs_diag' (bfs_diag("Check failed: `%s`", str)) ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/alloc.c:44:2: note: in expansion of macro 'bfs_check' bfs_check(sizeof_flex(struct flexible, bar, 0) >= sizeof(struct flexible)); ^~~~~~~~~ src/diag.h:23:10: error: expected expression before ')' token ((format) ? "%s: %s@%s:%d: " format "%s" : "") ^ src/diag.h:41:12: note: in expansion of macro 'BFS_DIAG_FORMAT_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~~~ tests/tests.h:53:4: note: in expansion of macro 'bfs_diag' (bfs_diag(__VA_ARGS__)) \ ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/alloc.c:45:2: note: in expansion of macro 'bfs_check' bfs_check(sizeof_flex(struct flexible, bar, 16) % alignof(struct flexible) == 0); ^~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:54:4: note: in expansion of macro 'bfs_diag' (bfs_diag("Check failed: `%s`", str)) ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/alloc.c:45:2: note: in expansion of macro 'bfs_check' bfs_check(sizeof_flex(struct flexible, bar, 16) % alignof(struct flexible) == 0); ^~~~~~~~~ src/diag.h:23:10: error: expected expression before ')' token ((format) ? "%s: %s@%s:%d: " format "%s" : "") ^ src/diag.h:41:12: note: in expansion of macro 'BFS_DIAG_FORMAT_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~~~ tests/tests.h:53:4: note: in expansion of macro 'bfs_diag' (bfs_diag(__VA_ARGS__)) \ ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/alloc.c:49:2: note: in expansion of macro 'bfs_check' bfs_check(sizeof_flex(struct flexible, bar, too_many) == align_floor(alignof(struct flexible), SIZE_MAX)); ^~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:54:4: note: in expansion of macro 'bfs_diag' (bfs_diag("Check failed: `%s`", str)) ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/alloc.c:49:2: note: in expansion of macro 'bfs_check' bfs_check(sizeof_flex(struct flexible, bar, too_many) == align_floor(alignof(struct flexible), SIZE_MAX)); ^~~~~~~~~ In file included from tests/alloc.c:4:0: src/alloc.h:162:10: error: implicit declaration of function 'alloc'; did you mean 'alloca'? [-Werror=implicit-function-declaration] (type *)alloc(alignof(type), sizeof_array(type, count)) ^ tests/tests.h:49:18: note: in definition of macro 'bfs_check' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~ tests/alloc.c:52:12: note: in expansion of macro 'ALLOC_ARRAY' bfs_check(ALLOC_ARRAY(int, too_many) == NULL && errno == EOVERFLOW); ^~~~~~~~~~~ src/alloc.h:162:2: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] (type *)alloc(alignof(type), sizeof_array(type, count)) ^ tests/tests.h:49:18: note: in definition of macro 'bfs_check' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~ tests/alloc.c:52:12: note: in expansion of macro 'ALLOC_ARRAY' bfs_check(ALLOC_ARRAY(int, too_many) == NULL && errno == EOVERFLOW); ^~~~~~~~~~~ In file included from tests/tests.h:13:0, from tests/alloc.c:4: src/diag.h:23:10: error: expected expression before ')' token ((format) ? "%s: %s@%s:%d: " format "%s" : "") ^ src/diag.h:41:12: note: in expansion of macro 'BFS_DIAG_FORMAT_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~~~ tests/tests.h:53:4: note: in expansion of macro 'bfs_diag' (bfs_diag(__VA_ARGS__)) \ ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/alloc.c:52:2: note: in expansion of macro 'bfs_check' bfs_check(ALLOC_ARRAY(int, too_many) == NULL && errno == EOVERFLOW); ^~~~~~~~~ src/xspawn.c: In function 'bfs_fork_spawn': src/xspawn.c:707:3: error: implicit declaration of function 'bfs_spawn_exec'; did you mean 'bfs_spawn_init'? [-Werror=implicit-function-declaration] bfs_spawn_exec(res, ctx, argv, envp, &old_mask, pipefd); ^~~~~~~~~~~~~~ bfs_spawn_init src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:54:4: note: in expansion of macro 'bfs_diag' (bfs_diag("Check failed: `%s`", str)) ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/alloc.c:52:2: note: in expansion of macro 'bfs_check' bfs_check(ALLOC_ARRAY(int, too_many) == NULL && errno == EOVERFLOW); ^~~~~~~~~ In file included from tests/alloc.c:4:0: src/alloc.h:166:2: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] (type *)zalloc(alignof(type), sizeof_array(type, count)) ^ tests/tests.h:49:18: note: in definition of macro 'bfs_check' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~ tests/alloc.c:53:12: note: in expansion of macro 'ZALLOC_ARRAY' bfs_check(ZALLOC_ARRAY(int, too_many) == NULL && errno == EOVERFLOW); ^~~~~~~~~~~~ In file included from tests/tests.h:13:0, from tests/alloc.c:4: src/diag.h:23:10: error: expected expression before ')' token ((format) ? "%s: %s@%s:%d: " format "%s" : "") ^ src/diag.h:41:12: note: in expansion of macro 'BFS_DIAG_FORMAT_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~~~ tests/tests.h:53:4: note: in expansion of macro 'bfs_diag' (bfs_diag(__VA_ARGS__)) \ ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/alloc.c:53:2: note: in expansion of macro 'bfs_check' bfs_check(ZALLOC_ARRAY(int, too_many) == NULL && errno == EOVERFLOW); ^~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:54:4: note: in expansion of macro 'bfs_diag' (bfs_diag("Check failed: `%s`", str)) ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/alloc.c:53:2: note: in expansion of macro 'bfs_check' bfs_check(ZALLOC_ARRAY(int, too_many) == NULL && errno == EOVERFLOW); ^~~~~~~~~ In file included from tests/alloc.c:4:0: src/alloc.h:170:2: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] (type *)alloc(alignof(type), sizeof_flex(type, member, count)) ^ tests/tests.h:49:18: note: in definition of macro 'bfs_check' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~ tests/alloc.c:54:12: note: in expansion of macro 'ALLOC_FLEX' bfs_check(ALLOC_FLEX(struct flexible, bar, too_many) == NULL && errno == EOVERFLOW); ^~~~~~~~~~ In file included from tests/tests.h:13:0, from tests/alloc.c:4: src/diag.h:23:10: error: expected expression before ')' token ((format) ? "%s: %s@%s:%d: " format "%s" : "") ^ src/diag.h:41:12: note: in expansion of macro 'BFS_DIAG_FORMAT_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~~~ tests/tests.h:53:4: note: in expansion of macro 'bfs_diag' (bfs_diag(__VA_ARGS__)) \ ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/alloc.c:54:2: note: in expansion of macro 'bfs_check' bfs_check(ALLOC_FLEX(struct flexible, bar, too_many) == NULL && errno == EOVERFLOW); ^~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:54:4: note: in expansion of macro 'bfs_diag' (bfs_diag("Check failed: `%s`", str)) ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/alloc.c:54:2: note: in expansion of macro 'bfs_check' bfs_check(ALLOC_FLEX(struct flexible, bar, too_many) == NULL && errno == EOVERFLOW); ^~~~~~~~~ In file included from tests/alloc.c:4:0: src/alloc.h:174:2: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] (type *)zalloc(alignof(type), sizeof_flex(type, member, count)) ^ tests/tests.h:49:18: note: in definition of macro 'bfs_check' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~ tests/alloc.c:55:12: note: in expansion of macro 'ZALLOC_FLEX' bfs_check(ZALLOC_FLEX(struct flexible, bar, too_many) == NULL && errno == EOVERFLOW); ^~~~~~~~~~~ In file included from tests/tests.h:13:0, from tests/alloc.c:4: src/diag.h:23:10: error: expected expression before ')' token ((format) ? "%s: %s@%s:%d: " format "%s" : "") ^ src/diag.h:41:12: note: in expansion of macro 'BFS_DIAG_FORMAT_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~~~ tests/tests.h:53:4: note: in expansion of macro 'bfs_diag' (bfs_diag(__VA_ARGS__)) \ ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/alloc.c:55:2: note: in expansion of macro 'bfs_check' bfs_check(ZALLOC_FLEX(struct flexible, bar, too_many) == NULL && errno == EOVERFLOW); ^~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:54:4: note: in expansion of macro 'bfs_diag' (bfs_diag("Check failed: `%s`", str)) ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/alloc.c:55:2: note: in expansion of macro 'bfs_check' bfs_check(ZALLOC_FLEX(struct flexible, bar, too_many) == NULL && errno == EOVERFLOW); ^~~~~~~~~ tests/alloc.c:62:15: error: implicit declaration of function 'varena_alloc'; did you mean 'varena_clear'? [-Werror=implicit-function-declaration] bfs_everify(varena_alloc(&varena, i)); ^ src/diag.h:96:4: note: in definition of macro 'bfs_everify' ((cond) ? (void)0 : BFS_VA_IF(__VA_ARGS__) \ ^~~~ src/diag.h:70:52: error: expected expression before ',' token (bfs_abort(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:70:4: note: in expansion of macro 'bfs_abort' (bfs_abort(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~~ src/diag.h:97:4: note: in expansion of macro 'bfs_eabort' (bfs_eabort(__VA_ARGS__)) \ ^~~~~~~~~~ tests/alloc.c:62:3: note: in expansion of macro 'bfs_everify' bfs_everify(varena_alloc(&varena, i)); ^~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:63:39: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_abortf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:71:4: note: in expansion of macro 'bfs_abort' (bfs_abort("%s", errstr())) ^~~~~~~~~ src/diag.h:97:4: note: in expansion of macro 'bfs_eabort' (bfs_eabort(__VA_ARGS__)) \ ^~~~~~~~~~ tests/alloc.c:62:3: note: in expansion of macro 'bfs_everify' bfs_everify(varena_alloc(&varena, i)); ^~~~~~~~~~~ src/diag.h:70:41: error: expected ')' before '__VA_OPT__' (bfs_abort(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:70:4: note: in expansion of macro 'bfs_abort' (bfs_abort(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~~ src/diag.h:98:4: note: in expansion of macro 'bfs_eabort' (bfs_eabort("Assertion failed: `%s`", #cond))) ^~~~~~~~~~ tests/alloc.c:62:3: note: in expansion of macro 'bfs_everify' bfs_everify(varena_alloc(&varena, i)); ^~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:63:39: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_abortf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:71:4: note: in expansion of macro 'bfs_abort' (bfs_abort("%s", errstr())) ^~~~~~~~~ src/diag.h:98:4: note: in expansion of macro 'bfs_eabort' (bfs_eabort("Assertion failed: `%s`", #cond))) ^~~~~~~~~~ tests/alloc.c:62:3: note: in expansion of macro 'bfs_everify' bfs_everify(varena_alloc(&varena, i)); ^~~~~~~~~~~ src/diag.h:23:10: error: expected expression before ')' token ((format) ? "%s: %s@%s:%d: " format "%s" : "") ^ src/diag.h:41:12: note: in expansion of macro 'BFS_DIAG_FORMAT_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~~~ tests/tests.h:53:4: note: in expansion of macro 'bfs_diag' (bfs_diag(__VA_ARGS__)) \ ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/alloc.c:64:3: note: in expansion of macro 'bfs_check' bfs_check(arena->size >= sizeof_flex(struct flexible, bar, i)); ^~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:54:4: note: in expansion of macro 'bfs_diag' (bfs_diag("Check failed: `%s`", str)) ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/alloc.c:64:3: note: in expansion of macro 'bfs_check' bfs_check(arena->size >= sizeof_flex(struct flexible, bar, i)); ^~~~~~~~~ In file included from src/alloc.h:11:0, from src/xspawn.c:6: src/bfs.h:77:24: error: implicit declaration of function 'BFS_VA_IF_AB__VA_OPT__'; did you mean 'BFS_VA_IF_ABC'? [-Werror=implicit-function-declaration] #define BFS_VA_IF(...) BFS_VA_IF_AB ## __VA_OPT__(C) ^ src/diag.h:96:22: note: in expansion of macro 'BFS_VA_IF' ((cond) ? (void)0 : BFS_VA_IF(__VA_ARGS__) \ ^~~~~~~~~ src/xspawn.c:712:2: note: in expansion of macro 'bfs_everify' bfs_everify(errno == 0, "pthread_sigmask()"); ^~~~~~~~~~~ tests/alloc.c:68:27: warning: initialization makes pointer from integer without a cast [-Wint-conversion] struct flexible *flexy = varena_alloc(&varena, 160); ^~~~~~~~~~~~ In file included from tests/tests.h:13:0, from tests/alloc.c:4: src/diag.h:70:52: error: expected expression before ',' token (bfs_abort(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:70:4: note: in expansion of macro 'bfs_abort' (bfs_abort(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~~ src/diag.h:97:4: note: in expansion of macro 'bfs_eabort' (bfs_eabort(__VA_ARGS__)) \ ^~~~~~~~~~ tests/alloc.c:69:2: note: in expansion of macro 'bfs_everify' bfs_everify(flexy); ^~~~~~~~~~~ src/bfs.h:77:51: error: 'C' undeclared (first use in this function) #define BFS_VA_IF(...) BFS_VA_IF_AB ## __VA_OPT__(C) ^ src/diag.h:96:22: note: in expansion of macro 'BFS_VA_IF' ((cond) ? (void)0 : BFS_VA_IF(__VA_ARGS__) \ ^~~~~~~~~ src/xspawn.c:712:2: note: in expansion of macro 'bfs_everify' bfs_everify(errno == 0, "pthread_sigmask()"); ^~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:63:39: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_abortf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:71:4: note: in expansion of macro 'bfs_abort' (bfs_abort("%s", errstr())) ^~~~~~~~~ src/diag.h:97:4: note: in expansion of macro 'bfs_eabort' (bfs_eabort(__VA_ARGS__)) \ ^~~~~~~~~~ tests/alloc.c:69:2: note: in expansion of macro 'bfs_everify' bfs_everify(flexy); ^~~~~~~~~~~ src/diag.h:70:41: error: expected ')' before '__VA_OPT__' (bfs_abort(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:70:4: note: in expansion of macro 'bfs_abort' (bfs_abort(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~~ src/diag.h:98:4: note: in expansion of macro 'bfs_eabort' (bfs_eabort("Assertion failed: `%s`", #cond))) ^~~~~~~~~~ tests/alloc.c:69:2: note: in expansion of macro 'bfs_everify' bfs_everify(flexy); ^~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:63:39: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_abortf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:71:4: note: in expansion of macro 'bfs_abort' (bfs_abort("%s", errstr())) ^~~~~~~~~ src/diag.h:98:4: note: in expansion of macro 'bfs_eabort' (bfs_eabort("Assertion failed: `%s`", #cond))) ^~~~~~~~~~ tests/alloc.c:69:2: note: in expansion of macro 'bfs_everify' bfs_everify(flexy); ^~~~~~~~~~~ In file included from src/xspawn.c:9:0: src/diag.h:63:2: error: implicit declaration of function 'bfs_abortf'; did you mean 'bfs_abort'? [-Werror=implicit-function-declaration] bfs_abortf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^ src/diag.h:70:4: note: in expansion of macro 'bfs_abort' (bfs_abort(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~~ src/diag.h:97:4: note: in expansion of macro 'bfs_eabort' (bfs_eabort(__VA_ARGS__)) \ ^~~~~~~~~~ src/xspawn.c:712:2: note: in expansion of macro 'bfs_everify' bfs_everify(errno == 0, "pthread_sigmask()"); ^~~~~~~~~~~ cc1: some warnings being treated as errors src/diag.h:70:41: error: implicit declaration of function '__VA_OPT__'; did you mean '__CHAR_BIT__'? [-Werror=implicit-function-declaration] (bfs_abort(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:70:4: note: in expansion of macro 'bfs_abort' (bfs_abort(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~~ src/diag.h:97:4: note: in expansion of macro 'bfs_eabort' (bfs_eabort(__VA_ARGS__)) \ ^~~~~~~~~~ src/xspawn.c:712:2: note: in expansion of macro 'bfs_everify' bfs_everify(errno == 0, "pthread_sigmask()"); ^~~~~~~~~~~ src/diag.h:70:52: error: expected expression before ',' token (bfs_abort(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:70:4: note: in expansion of macro 'bfs_abort' (bfs_abort(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~~ src/diag.h:97:4: note: in expansion of macro 'bfs_eabort' (bfs_eabort(__VA_ARGS__)) \ ^~~~~~~~~~ src/xspawn.c:712:2: note: in expansion of macro 'bfs_everify' bfs_everify(errno == 0, "pthread_sigmask()"); ^~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:63:39: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_abortf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:71:4: note: in expansion of macro 'bfs_abort' (bfs_abort("%s", errstr())) ^~~~~~~~~ src/diag.h:97:4: note: in expansion of macro 'bfs_eabort' (bfs_eabort(__VA_ARGS__)) \ ^~~~~~~~~~ src/xspawn.c:712:2: note: in expansion of macro 'bfs_everify' bfs_everify(errno == 0, "pthread_sigmask()"); ^~~~~~~~~~~ src/diag.h:70:41: error: expected ')' before '__VA_OPT__' (bfs_abort(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:70:4: note: in expansion of macro 'bfs_abort' (bfs_abort(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~~ src/diag.h:98:4: note: in expansion of macro 'bfs_eabort' (bfs_eabort("Assertion failed: `%s`", #cond))) ^~~~~~~~~~ src/xspawn.c:712:2: note: in expansion of macro 'bfs_everify' bfs_everify(errno == 0, "pthread_sigmask()"); ^~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:63:39: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_abortf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:71:4: note: in expansion of macro 'bfs_abort' (bfs_abort("%s", errstr())) ^~~~~~~~~ src/diag.h:98:4: note: in expansion of macro 'bfs_eabort' (bfs_eabort("Assertion failed: `%s`", #cond))) ^~~~~~~~~~ src/xspawn.c:712:2: note: in expansion of macro 'bfs_everify' bfs_everify(errno == 0, "pthread_sigmask()"); ^~~~~~~~~~~ In file included from tests/tests.h:13:0, from tests/bit.c:4: src/diag.h:34:1: error: expected identifier or '(' before '[' token [[_printf(1, 2)]] ^ src/diag.h:54:1: error: expected identifier or '(' before '[' token [[_cold]] ^ src/diag.h:144:1: error: expected identifier or '(' before '[' token [[_cold]] ^ src/diag.h:150:1: error: expected identifier or '(' before '[' token [[_cold]] ^ src/diag.h:159:1: error: expected identifier or '(' before '[' token [[_cold]] ^ src/diag.h:168:1: error: expected identifier or '(' before '[' token [[_cold]] ^ cc1: some warnings being treated as errors src/diag.h:175:1: error: expected identifier or '(' before '[' token [[_cold]] ^ src/diag.h:182:1: error: expected identifier or '(' before '[' token [[_cold]] ^ src/diag.h:189:1: error: expected identifier or '(' before '[' token [[_cold]] ^ src/diag.h:196:1: error: expected identifier or '(' before '[' token [[_cold]] ^ src/diag.h:202:1: error: expected identifier or '(' before '[' token [[_cold]] ^ src/diag.h:208:1: error: expected identifier or '(' before '[' token [[_cold]] ^ src/diag.h:214:1: error: expected identifier or '(' before '[' token [[_cold]] ^ src/diag.h:220:1: error: expected identifier or '(' before '[' token [[_cold]] ^ src/diag.h:226:1: error: expected identifier or '(' before '[' token [[_cold]] ^ src/diag.h:232:1: error: expected identifier or '(' before '[' token [[_cold]] ^ gmake: *** [Makefile:236: obj/tests/alloc.o] Error 1 gmake: *** [Makefile:236: obj/src/xspawn.o] Error 1 In file included from tests/tests.h:11:0, from tests/bit.c:4: tests/bit.c: In function 'check_bit': src/bfs.h:77:24: error: implicit declaration of function 'BFS_VA_IF_AB__VA_OPT__'; did you mean 'BFS_VA_IF_ABC'? [-Werror=implicit-function-declaration] #define BFS_VA_IF(...) BFS_VA_IF_AB ## __VA_OPT__(C) ^ tests/tests.h:52:2: note: in expansion of macro 'BFS_VA_IF' BFS_VA_IF(__VA_ARGS__) \ ^~~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bit.c:64:2: note: in expansion of macro 'bfs_check' bfs_check((a) == (b), "(0x%jX) %s != %s (0x%jX)", (uintmax_t)(a), #a, #b, (uintmax_t)(b)) ^~~~~~~~~ tests/bit.c:72:2: note: in expansion of macro 'check_eq' check_eq(word, 0x04030201); ^~~~~~~~ src/bfs.h:77:51: error: 'C' undeclared (first use in this function) #define BFS_VA_IF(...) BFS_VA_IF_AB ## __VA_OPT__(C) ^ tests/tests.h:52:2: note: in expansion of macro 'BFS_VA_IF' BFS_VA_IF(__VA_ARGS__) \ ^~~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bit.c:64:2: note: in expansion of macro 'bfs_check' bfs_check((a) == (b), "(0x%jX) %s != %s (0x%jX)", (uintmax_t)(a), #a, #b, (uintmax_t)(b)) ^~~~~~~~~ tests/bit.c:72:2: note: in expansion of macro 'check_eq' check_eq(word, 0x04030201); ^~~~~~~~ src/bfs.h:77:51: note: each undeclared identifier is reported only once for each function it appears in #define BFS_VA_IF(...) BFS_VA_IF_AB ## __VA_OPT__(C) ^ tests/tests.h:52:2: note: in expansion of macro 'BFS_VA_IF' BFS_VA_IF(__VA_ARGS__) \ ^~~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bit.c:64:2: note: in expansion of macro 'bfs_check' bfs_check((a) == (b), "(0x%jX) %s != %s (0x%jX)", (uintmax_t)(a), #a, #b, (uintmax_t)(b)) ^~~~~~~~~ tests/bit.c:72:2: note: in expansion of macro 'check_eq' check_eq(word, 0x04030201); ^~~~~~~~ In file included from tests/tests.h:13:0, from tests/bit.c:4: src/diag.h:41:2: error: implicit declaration of function 'bfs_diagf'; did you mean 'bfs_diag'? [-Werror=implicit-function-declaration] bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^ tests/tests.h:53:4: note: in expansion of macro 'bfs_diag' (bfs_diag(__VA_ARGS__)) \ ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bit.c:64:2: note: in expansion of macro 'bfs_check' bfs_check((a) == (b), "(0x%jX) %s != %s (0x%jX)", (uintmax_t)(a), #a, #b, (uintmax_t)(b)) ^~~~~~~~~ tests/bit.c:72:2: note: in expansion of macro 'check_eq' check_eq(word, 0x04030201); ^~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:53:4: note: in expansion of macro 'bfs_diag' (bfs_diag(__VA_ARGS__)) \ ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bit.c:64:2: note: in expansion of macro 'bfs_check' bfs_check((a) == (b), "(0x%jX) %s != %s (0x%jX)", (uintmax_t)(a), #a, #b, (uintmax_t)(b)) ^~~~~~~~~ tests/bit.c:72:2: note: in expansion of macro 'check_eq' check_eq(word, 0x04030201); ^~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:54:4: note: in expansion of macro 'bfs_diag' (bfs_diag("Check failed: `%s`", str)) ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bit.c:64:2: note: in expansion of macro 'bfs_check' bfs_check((a) == (b), "(0x%jX) %s != %s (0x%jX)", (uintmax_t)(a), #a, #b, (uintmax_t)(b)) ^~~~~~~~~ tests/bit.c:72:2: note: in expansion of macro 'check_eq' check_eq(word, 0x04030201); ^~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:53:4: note: in expansion of macro 'bfs_diag' (bfs_diag(__VA_ARGS__)) \ ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bit.c:64:2: note: in expansion of macro 'bfs_check' bfs_check((a) == (b), "(0x%jX) %s != %s (0x%jX)", (uintmax_t)(a), #a, #b, (uintmax_t)(b)) ^~~~~~~~~ tests/bit.c:79:2: note: in expansion of macro 'check_eq' check_eq(bswap((uint8_t)0x12), 0x12); ^~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:54:4: note: in expansion of macro 'bfs_diag' (bfs_diag("Check failed: `%s`", str)) ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bit.c:64:2: note: in expansion of macro 'bfs_check' bfs_check((a) == (b), "(0x%jX) %s != %s (0x%jX)", (uintmax_t)(a), #a, #b, (uintmax_t)(b)) ^~~~~~~~~ tests/bit.c:79:2: note: in expansion of macro 'check_eq' check_eq(bswap((uint8_t)0x12), 0x12); ^~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:53:4: note: in expansion of macro 'bfs_diag' (bfs_diag(__VA_ARGS__)) \ ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bit.c:64:2: note: in expansion of macro 'bfs_check' bfs_check((a) == (b), "(0x%jX) %s != %s (0x%jX)", (uintmax_t)(a), #a, #b, (uintmax_t)(b)) ^~~~~~~~~ tests/bit.c:80:2: note: in expansion of macro 'check_eq' check_eq(bswap((uint16_t)0x1234), 0x3412); ^~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:54:4: note: in expansion of macro 'bfs_diag' (bfs_diag("Check failed: `%s`", str)) ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bit.c:64:2: note: in expansion of macro 'bfs_check' bfs_check((a) == (b), "(0x%jX) %s != %s (0x%jX)", (uintmax_t)(a), #a, #b, (uintmax_t)(b)) ^~~~~~~~~ tests/bit.c:80:2: note: in expansion of macro 'check_eq' check_eq(bswap((uint16_t)0x1234), 0x3412); ^~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:53:4: note: in expansion of macro 'bfs_diag' (bfs_diag(__VA_ARGS__)) \ ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bit.c:64:2: note: in expansion of macro 'bfs_check' bfs_check((a) == (b), "(0x%jX) %s != %s (0x%jX)", (uintmax_t)(a), #a, #b, (uintmax_t)(b)) ^~~~~~~~~ tests/bit.c:81:2: note: in expansion of macro 'check_eq' check_eq(bswap((uint32_t)0x12345678), 0x78563412); ^~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:54:4: note: in expansion of macro 'bfs_diag' (bfs_diag("Check failed: `%s`", str)) ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bit.c:64:2: note: in expansion of macro 'bfs_check' bfs_check((a) == (b), "(0x%jX) %s != %s (0x%jX)", (uintmax_t)(a), #a, #b, (uintmax_t)(b)) ^~~~~~~~~ tests/bit.c:81:2: note: in expansion of macro 'check_eq' check_eq(bswap((uint32_t)0x12345678), 0x78563412); ^~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:53:4: note: in expansion of macro 'bfs_diag' (bfs_diag(__VA_ARGS__)) \ ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bit.c:64:2: note: in expansion of macro 'bfs_check' bfs_check((a) == (b), "(0x%jX) %s != %s (0x%jX)", (uintmax_t)(a), #a, #b, (uintmax_t)(b)) ^~~~~~~~~ tests/bit.c:82:2: note: in expansion of macro 'check_eq' check_eq(bswap((uint64_t)0x1234567812345678), 0x7856341278563412); ^~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:54:4: note: in expansion of macro 'bfs_diag' (bfs_diag("Check failed: `%s`", str)) ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bit.c:64:2: note: in expansion of macro 'bfs_check' bfs_check((a) == (b), "(0x%jX) %s != %s (0x%jX)", (uintmax_t)(a), #a, #b, (uintmax_t)(b)) ^~~~~~~~~ tests/bit.c:82:2: note: in expansion of macro 'check_eq' check_eq(bswap((uint64_t)0x1234567812345678), 0x7856341278563412); ^~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:53:4: note: in expansion of macro 'bfs_diag' (bfs_diag(__VA_ARGS__)) \ ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bit.c:64:2: note: in expansion of macro 'bfs_check' bfs_check((a) == (b), "(0x%jX) %s != %s (0x%jX)", (uintmax_t)(a), #a, #b, (uintmax_t)(b)) ^~~~~~~~~ tests/bit.c:91:2: note: in expansion of macro 'check_eq' check_eq(load8_beu8(str), 0x01); ^~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:54:4: note: in expansion of macro 'bfs_diag' (bfs_diag("Check failed: `%s`", str)) ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bit.c:64:2: note: in expansion of macro 'bfs_check' bfs_check((a) == (b), "(0x%jX) %s != %s (0x%jX)", (uintmax_t)(a), #a, #b, (uintmax_t)(b)) ^~~~~~~~~ tests/bit.c:91:2: note: in expansion of macro 'check_eq' check_eq(load8_beu8(str), 0x01); ^~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:53:4: note: in expansion of macro 'bfs_diag' (bfs_diag(__VA_ARGS__)) \ ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bit.c:64:2: note: in expansion of macro 'bfs_check' bfs_check((a) == (b), "(0x%jX) %s != %s (0x%jX)", (uintmax_t)(a), #a, #b, (uintmax_t)(b)) ^~~~~~~~~ tests/bit.c:92:2: note: in expansion of macro 'check_eq' check_eq(load8_leu8(str), 0x01); ^~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:54:4: note: in expansion of macro 'bfs_diag' (bfs_diag("Check failed: `%s`", str)) ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bit.c:64:2: note: in expansion of macro 'bfs_check' bfs_check((a) == (b), "(0x%jX) %s != %s (0x%jX)", (uintmax_t)(a), #a, #b, (uintmax_t)(b)) ^~~~~~~~~ tests/bit.c:92:2: note: in expansion of macro 'check_eq' check_eq(load8_leu8(str), 0x01); ^~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:53:4: note: in expansion of macro 'bfs_diag' (bfs_diag(__VA_ARGS__)) \ ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bit.c:64:2: note: in expansion of macro 'bfs_check' bfs_check((a) == (b), "(0x%jX) %s != %s (0x%jX)", (uintmax_t)(a), #a, #b, (uintmax_t)(b)) ^~~~~~~~~ tests/bit.c:93:2: note: in expansion of macro 'check_eq' check_eq(load8_beu16(str), 0x0102); ^~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:54:4: note: in expansion of macro 'bfs_diag' (bfs_diag("Check failed: `%s`", str)) ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bit.c:64:2: note: in expansion of macro 'bfs_check' bfs_check((a) == (b), "(0x%jX) %s != %s (0x%jX)", (uintmax_t)(a), #a, #b, (uintmax_t)(b)) ^~~~~~~~~ tests/bit.c:93:2: note: in expansion of macro 'check_eq' check_eq(load8_beu16(str), 0x0102); ^~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:53:4: note: in expansion of macro 'bfs_diag' (bfs_diag(__VA_ARGS__)) \ ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bit.c:64:2: note: in expansion of macro 'bfs_check' bfs_check((a) == (b), "(0x%jX) %s != %s (0x%jX)", (uintmax_t)(a), #a, #b, (uintmax_t)(b)) ^~~~~~~~~ tests/bit.c:94:2: note: in expansion of macro 'check_eq' check_eq(load8_leu16(str), 0x0201); ^~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:54:4: note: in expansion of macro 'bfs_diag' (bfs_diag("Check failed: `%s`", str)) ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bit.c:64:2: note: in expansion of macro 'bfs_check' bfs_check((a) == (b), "(0x%jX) %s != %s (0x%jX)", (uintmax_t)(a), #a, #b, (uintmax_t)(b)) ^~~~~~~~~ tests/bit.c:94:2: note: in expansion of macro 'check_eq' check_eq(load8_leu16(str), 0x0201); ^~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:53:4: note: in expansion of macro 'bfs_diag' (bfs_diag(__VA_ARGS__)) \ ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bit.c:64:2: note: in expansion of macro 'bfs_check' bfs_check((a) == (b), "(0x%jX) %s != %s (0x%jX)", (uintmax_t)(a), #a, #b, (uintmax_t)(b)) ^~~~~~~~~ tests/bit.c:95:2: note: in expansion of macro 'check_eq' check_eq(load8_beu32(str), 0x01020304); ^~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:54:4: note: in expansion of macro 'bfs_diag' (bfs_diag("Check failed: `%s`", str)) ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bit.c:64:2: note: in expansion of macro 'bfs_check' bfs_check((a) == (b), "(0x%jX) %s != %s (0x%jX)", (uintmax_t)(a), #a, #b, (uintmax_t)(b)) ^~~~~~~~~ tests/bit.c:95:2: note: in expansion of macro 'check_eq' check_eq(load8_beu32(str), 0x01020304); ^~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:53:4: note: in expansion of macro 'bfs_diag' (bfs_diag(__VA_ARGS__)) \ ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bit.c:64:2: note: in expansion of macro 'bfs_check' bfs_check((a) == (b), "(0x%jX) %s != %s (0x%jX)", (uintmax_t)(a), #a, #b, (uintmax_t)(b)) ^~~~~~~~~ tests/bit.c:96:2: note: in expansion of macro 'check_eq' check_eq(load8_leu32(str), 0x04030201); ^~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:54:4: note: in expansion of macro 'bfs_diag' (bfs_diag("Check failed: `%s`", str)) ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bit.c:64:2: note: in expansion of macro 'bfs_check' bfs_check((a) == (b), "(0x%jX) %s != %s (0x%jX)", (uintmax_t)(a), #a, #b, (uintmax_t)(b)) ^~~~~~~~~ tests/bit.c:96:2: note: in expansion of macro 'check_eq' check_eq(load8_leu32(str), 0x04030201); ^~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:53:4: note: in expansion of macro 'bfs_diag' (bfs_diag(__VA_ARGS__)) \ ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bit.c:64:2: note: in expansion of macro 'bfs_check' bfs_check((a) == (b), "(0x%jX) %s != %s (0x%jX)", (uintmax_t)(a), #a, #b, (uintmax_t)(b)) ^~~~~~~~~ tests/bit.c:97:2: note: in expansion of macro 'check_eq' check_eq(load8_beu64(str), 0x0102030405060708ULL); ^~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:54:4: note: in expansion of macro 'bfs_diag' (bfs_diag("Check failed: `%s`", str)) ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bit.c:64:2: note: in expansion of macro 'bfs_check' bfs_check((a) == (b), "(0x%jX) %s != %s (0x%jX)", (uintmax_t)(a), #a, #b, (uintmax_t)(b)) ^~~~~~~~~ tests/bit.c:97:2: note: in expansion of macro 'check_eq' check_eq(load8_beu64(str), 0x0102030405060708ULL); ^~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:53:4: note: in expansion of macro 'bfs_diag' (bfs_diag(__VA_ARGS__)) \ ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bit.c:64:2: note: in expansion of macro 'bfs_check' bfs_check((a) == (b), "(0x%jX) %s != %s (0x%jX)", (uintmax_t)(a), #a, #b, (uintmax_t)(b)) ^~~~~~~~~ tests/bit.c:98:2: note: in expansion of macro 'check_eq' check_eq(load8_leu64(str), 0x0807060504030201ULL); ^~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:54:4: note: in expansion of macro 'bfs_diag' (bfs_diag("Check failed: `%s`", str)) ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bit.c:64:2: note: in expansion of macro 'bfs_check' bfs_check((a) == (b), "(0x%jX) %s != %s (0x%jX)", (uintmax_t)(a), #a, #b, (uintmax_t)(b)) ^~~~~~~~~ tests/bit.c:98:2: note: in expansion of macro 'check_eq' check_eq(load8_leu64(str), 0x0807060504030201ULL); ^~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:53:4: note: in expansion of macro 'bfs_diag' (bfs_diag(__VA_ARGS__)) \ ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bit.c:64:2: note: in expansion of macro 'bfs_check' bfs_check((a) == (b), "(0x%jX) %s != %s (0x%jX)", (uintmax_t)(a), #a, #b, (uintmax_t)(b)) ^~~~~~~~~ tests/bit.c:100:2: note: in expansion of macro 'check_eq' check_eq(count_ones(0x0U), 0); ^~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:54:4: note: in expansion of macro 'bfs_diag' (bfs_diag("Check failed: `%s`", str)) ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bit.c:64:2: note: in expansion of macro 'bfs_check' bfs_check((a) == (b), "(0x%jX) %s != %s (0x%jX)", (uintmax_t)(a), #a, #b, (uintmax_t)(b)) ^~~~~~~~~ tests/bit.c:100:2: note: in expansion of macro 'check_eq' check_eq(count_ones(0x0U), 0); ^~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:53:4: note: in expansion of macro 'bfs_diag' (bfs_diag(__VA_ARGS__)) \ ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bit.c:64:2: note: in expansion of macro 'bfs_check' bfs_check((a) == (b), "(0x%jX) %s != %s (0x%jX)", (uintmax_t)(a), #a, #b, (uintmax_t)(b)) ^~~~~~~~~ tests/bit.c:101:2: note: in expansion of macro 'check_eq' check_eq(count_ones(0x1U), 1); ^~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:54:4: note: in expansion of macro 'bfs_diag' (bfs_diag("Check failed: `%s`", str)) ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bit.c:64:2: note: in expansion of macro 'bfs_check' bfs_check((a) == (b), "(0x%jX) %s != %s (0x%jX)", (uintmax_t)(a), #a, #b, (uintmax_t)(b)) ^~~~~~~~~ tests/bit.c:101:2: note: in expansion of macro 'check_eq' check_eq(count_ones(0x1U), 1); ^~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:53:4: note: in expansion of macro 'bfs_diag' (bfs_diag(__VA_ARGS__)) \ ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bit.c:64:2: note: in expansion of macro 'bfs_check' bfs_check((a) == (b), "(0x%jX) %s != %s (0x%jX)", (uintmax_t)(a), #a, #b, (uintmax_t)(b)) ^~~~~~~~~ tests/bit.c:102:2: note: in expansion of macro 'check_eq' check_eq(count_ones(0x2U), 1); ^~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:54:4: note: in expansion of macro 'bfs_diag' (bfs_diag("Check failed: `%s`", str)) ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bit.c:64:2: note: in expansion of macro 'bfs_check' bfs_check((a) == (b), "(0x%jX) %s != %s (0x%jX)", (uintmax_t)(a), #a, #b, (uintmax_t)(b)) ^~~~~~~~~ tests/bit.c:102:2: note: in expansion of macro 'check_eq' check_eq(count_ones(0x2U), 1); ^~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:53:4: note: in expansion of macro 'bfs_diag' (bfs_diag(__VA_ARGS__)) \ ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bit.c:64:2: note: in expansion of macro 'bfs_check' bfs_check((a) == (b), "(0x%jX) %s != %s (0x%jX)", (uintmax_t)(a), #a, #b, (uintmax_t)(b)) ^~~~~~~~~ tests/bit.c:103:2: note: in expansion of macro 'check_eq' check_eq(count_ones(0x3U), 2); ^~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:54:4: note: in expansion of macro 'bfs_diag' (bfs_diag("Check failed: `%s`", str)) ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bit.c:64:2: note: in expansion of macro 'bfs_check' bfs_check((a) == (b), "(0x%jX) %s != %s (0x%jX)", (uintmax_t)(a), #a, #b, (uintmax_t)(b)) ^~~~~~~~~ tests/bit.c:103:2: note: in expansion of macro 'check_eq' check_eq(count_ones(0x3U), 2); ^~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:53:4: note: in expansion of macro 'bfs_diag' (bfs_diag(__VA_ARGS__)) \ ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bit.c:64:2: note: in expansion of macro 'bfs_check' bfs_check((a) == (b), "(0x%jX) %s != %s (0x%jX)", (uintmax_t)(a), #a, #b, (uintmax_t)(b)) ^~~~~~~~~ tests/bit.c:104:2: note: in expansion of macro 'check_eq' check_eq(count_ones(0x137FU), 10); ^~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:54:4: note: in expansion of macro 'bfs_diag' (bfs_diag("Check failed: `%s`", str)) ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bit.c:64:2: note: in expansion of macro 'bfs_check' bfs_check((a) == (b), "(0x%jX) %s != %s (0x%jX)", (uintmax_t)(a), #a, #b, (uintmax_t)(b)) ^~~~~~~~~ tests/bit.c:104:2: note: in expansion of macro 'check_eq' check_eq(count_ones(0x137FU), 10); ^~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:53:4: note: in expansion of macro 'bfs_diag' (bfs_diag(__VA_ARGS__)) \ ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bit.c:64:2: note: in expansion of macro 'bfs_check' bfs_check((a) == (b), "(0x%jX) %s != %s (0x%jX)", (uintmax_t)(a), #a, #b, (uintmax_t)(b)) ^~~~~~~~~ tests/bit.c:106:2: note: in expansion of macro 'check_eq' check_eq(count_zeros(0U), UINT_WIDTH); ^~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:54:4: note: in expansion of macro 'bfs_diag' (bfs_diag("Check failed: `%s`", str)) ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bit.c:64:2: note: in expansion of macro 'bfs_check' bfs_check((a) == (b), "(0x%jX) %s != %s (0x%jX)", (uintmax_t)(a), #a, #b, (uintmax_t)(b)) ^~~~~~~~~ tests/bit.c:106:2: note: in expansion of macro 'check_eq' check_eq(count_zeros(0U), UINT_WIDTH); ^~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:53:4: note: in expansion of macro 'bfs_diag' (bfs_diag(__VA_ARGS__)) \ ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bit.c:64:2: note: in expansion of macro 'bfs_check' bfs_check((a) == (b), "(0x%jX) %s != %s (0x%jX)", (uintmax_t)(a), #a, #b, (uintmax_t)(b)) ^~~~~~~~~ tests/bit.c:107:2: note: in expansion of macro 'check_eq' check_eq(count_zeros(0UL), ULONG_WIDTH); ^~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:54:4: note: in expansion of macro 'bfs_diag' (bfs_diag("Check failed: `%s`", str)) ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bit.c:64:2: note: in expansion of macro 'bfs_check' bfs_check((a) == (b), "(0x%jX) %s != %s (0x%jX)", (uintmax_t)(a), #a, #b, (uintmax_t)(b)) ^~~~~~~~~ tests/bit.c:107:2: note: in expansion of macro 'check_eq' check_eq(count_zeros(0UL), ULONG_WIDTH); ^~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:53:4: note: in expansion of macro 'bfs_diag' (bfs_diag(__VA_ARGS__)) \ ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bit.c:64:2: note: in expansion of macro 'bfs_check' bfs_check((a) == (b), "(0x%jX) %s != %s (0x%jX)", (uintmax_t)(a), #a, #b, (uintmax_t)(b)) ^~~~~~~~~ tests/bit.c:108:2: note: in expansion of macro 'check_eq' check_eq(count_zeros(0ULL), ULLONG_WIDTH); ^~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:54:4: note: in expansion of macro 'bfs_diag' (bfs_diag("Check failed: `%s`", str)) ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bit.c:64:2: note: in expansion of macro 'bfs_check' bfs_check((a) == (b), "(0x%jX) %s != %s (0x%jX)", (uintmax_t)(a), #a, #b, (uintmax_t)(b)) ^~~~~~~~~ tests/bit.c:108:2: note: in expansion of macro 'check_eq' check_eq(count_zeros(0ULL), ULLONG_WIDTH); ^~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:53:4: note: in expansion of macro 'bfs_diag' (bfs_diag(__VA_ARGS__)) \ ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bit.c:64:2: note: in expansion of macro 'bfs_check' bfs_check((a) == (b), "(0x%jX) %s != %s (0x%jX)", (uintmax_t)(a), #a, #b, (uintmax_t)(b)) ^~~~~~~~~ tests/bit.c:109:2: note: in expansion of macro 'check_eq' check_eq(count_zeros((uint8_t)0), 8); ^~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:54:4: note: in expansion of macro 'bfs_diag' (bfs_diag("Check failed: `%s`", str)) ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bit.c:64:2: note: in expansion of macro 'bfs_check' bfs_check((a) == (b), "(0x%jX) %s != %s (0x%jX)", (uintmax_t)(a), #a, #b, (uintmax_t)(b)) ^~~~~~~~~ tests/bit.c:109:2: note: in expansion of macro 'check_eq' check_eq(count_zeros((uint8_t)0), 8); ^~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:53:4: note: in expansion of macro 'bfs_diag' (bfs_diag(__VA_ARGS__)) \ ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bit.c:64:2: note: in expansion of macro 'bfs_check' bfs_check((a) == (b), "(0x%jX) %s != %s (0x%jX)", (uintmax_t)(a), #a, #b, (uintmax_t)(b)) ^~~~~~~~~ tests/bit.c:110:2: note: in expansion of macro 'check_eq' check_eq(count_zeros((uint16_t)0), 16); ^~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:54:4: note: in expansion of macro 'bfs_diag' (bfs_diag("Check failed: `%s`", str)) ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bit.c:64:2: note: in expansion of macro 'bfs_check' bfs_check((a) == (b), "(0x%jX) %s != %s (0x%jX)", (uintmax_t)(a), #a, #b, (uintmax_t)(b)) ^~~~~~~~~ tests/bit.c:110:2: note: in expansion of macro 'check_eq' check_eq(count_zeros((uint16_t)0), 16); ^~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:53:4: note: in expansion of macro 'bfs_diag' (bfs_diag(__VA_ARGS__)) \ ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bit.c:64:2: note: in expansion of macro 'bfs_check' bfs_check((a) == (b), "(0x%jX) %s != %s (0x%jX)", (uintmax_t)(a), #a, #b, (uintmax_t)(b)) ^~~~~~~~~ tests/bit.c:111:2: note: in expansion of macro 'check_eq' check_eq(count_zeros((uint32_t)0), 32); ^~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:54:4: note: in expansion of macro 'bfs_diag' (bfs_diag("Check failed: `%s`", str)) ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bit.c:64:2: note: in expansion of macro 'bfs_check' bfs_check((a) == (b), "(0x%jX) %s != %s (0x%jX)", (uintmax_t)(a), #a, #b, (uintmax_t)(b)) ^~~~~~~~~ tests/bit.c:111:2: note: in expansion of macro 'check_eq' check_eq(count_zeros((uint32_t)0), 32); ^~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:53:4: note: in expansion of macro 'bfs_diag' (bfs_diag(__VA_ARGS__)) \ ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bit.c:64:2: note: in expansion of macro 'bfs_check' bfs_check((a) == (b), "(0x%jX) %s != %s (0x%jX)", (uintmax_t)(a), #a, #b, (uintmax_t)(b)) ^~~~~~~~~ tests/bit.c:112:2: note: in expansion of macro 'check_eq' check_eq(count_zeros((uint64_t)0), 64); ^~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:54:4: note: in expansion of macro 'bfs_diag' (bfs_diag("Check failed: `%s`", str)) ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bit.c:64:2: note: in expansion of macro 'bfs_check' bfs_check((a) == (b), "(0x%jX) %s != %s (0x%jX)", (uintmax_t)(a), #a, #b, (uintmax_t)(b)) ^~~~~~~~~ tests/bit.c:112:2: note: in expansion of macro 'check_eq' check_eq(count_zeros((uint64_t)0), 64); ^~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:53:4: note: in expansion of macro 'bfs_diag' (bfs_diag(__VA_ARGS__)) \ ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bit.c:64:2: note: in expansion of macro 'bfs_check' bfs_check((a) == (b), "(0x%jX) %s != %s (0x%jX)", (uintmax_t)(a), #a, #b, (uintmax_t)(b)) ^~~~~~~~~ tests/bit.c:114:2: note: in expansion of macro 'check_eq' check_eq(rotate_left((uint8_t)0xA1, 4), 0x1A); ^~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:54:4: note: in expansion of macro 'bfs_diag' (bfs_diag("Check failed: `%s`", str)) ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bit.c:64:2: note: in expansion of macro 'bfs_check' bfs_check((a) == (b), "(0x%jX) %s != %s (0x%jX)", (uintmax_t)(a), #a, #b, (uintmax_t)(b)) ^~~~~~~~~ tests/bit.c:114:2: note: in expansion of macro 'check_eq' check_eq(rotate_left((uint8_t)0xA1, 4), 0x1A); ^~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:53:4: note: in expansion of macro 'bfs_diag' (bfs_diag(__VA_ARGS__)) \ ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bit.c:64:2: note: in expansion of macro 'bfs_check' bfs_check((a) == (b), "(0x%jX) %s != %s (0x%jX)", (uintmax_t)(a), #a, #b, (uintmax_t)(b)) ^~~~~~~~~ tests/bit.c:115:2: note: in expansion of macro 'check_eq' check_eq(rotate_left((uint16_t)0x1234, 12), 0x4123); ^~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:54:4: note: in expansion of macro 'bfs_diag' (bfs_diag("Check failed: `%s`", str)) ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bit.c:64:2: note: in expansion of macro 'bfs_check' bfs_check((a) == (b), "(0x%jX) %s != %s (0x%jX)", (uintmax_t)(a), #a, #b, (uintmax_t)(b)) ^~~~~~~~~ tests/bit.c:115:2: note: in expansion of macro 'check_eq' check_eq(rotate_left((uint16_t)0x1234, 12), 0x4123); ^~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:53:4: note: in expansion of macro 'bfs_diag' (bfs_diag(__VA_ARGS__)) \ ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bit.c:64:2: note: in expansion of macro 'bfs_check' bfs_check((a) == (b), "(0x%jX) %s != %s (0x%jX)", (uintmax_t)(a), #a, #b, (uintmax_t)(b)) ^~~~~~~~~ tests/bit.c:116:2: note: in expansion of macro 'check_eq' check_eq(rotate_left((uint32_t)0x12345678, 20), 0x67812345); ^~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:54:4: note: in expansion of macro 'bfs_diag' (bfs_diag("Check failed: `%s`", str)) ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bit.c:64:2: note: in expansion of macro 'bfs_check' bfs_check((a) == (b), "(0x%jX) %s != %s (0x%jX)", (uintmax_t)(a), #a, #b, (uintmax_t)(b)) ^~~~~~~~~ tests/bit.c:116:2: note: in expansion of macro 'check_eq' check_eq(rotate_left((uint32_t)0x12345678, 20), 0x67812345); ^~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:53:4: note: in expansion of macro 'bfs_diag' (bfs_diag(__VA_ARGS__)) \ ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bit.c:64:2: note: in expansion of macro 'bfs_check' bfs_check((a) == (b), "(0x%jX) %s != %s (0x%jX)", (uintmax_t)(a), #a, #b, (uintmax_t)(b)) ^~~~~~~~~ tests/bit.c:117:2: note: in expansion of macro 'check_eq' check_eq(rotate_left((uint32_t)0x12345678, 0), 0x12345678); ^~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:54:4: note: in expansion of macro 'bfs_diag' (bfs_diag("Check failed: `%s`", str)) ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bit.c:64:2: note: in expansion of macro 'bfs_check' bfs_check((a) == (b), "(0x%jX) %s != %s (0x%jX)", (uintmax_t)(a), #a, #b, (uintmax_t)(b)) ^~~~~~~~~ tests/bit.c:117:2: note: in expansion of macro 'check_eq' check_eq(rotate_left((uint32_t)0x12345678, 0), 0x12345678); ^~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:53:4: note: in expansion of macro 'bfs_diag' (bfs_diag(__VA_ARGS__)) \ ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bit.c:64:2: note: in expansion of macro 'bfs_check' bfs_check((a) == (b), "(0x%jX) %s != %s (0x%jX)", (uintmax_t)(a), #a, #b, (uintmax_t)(b)) ^~~~~~~~~ tests/bit.c:119:2: note: in expansion of macro 'check_eq' check_eq(rotate_right((uint8_t)0xA1, 4), 0x1A); ^~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:54:4: note: in expansion of macro 'bfs_diag' (bfs_diag("Check failed: `%s`", str)) ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bit.c:64:2: note: in expansion of macro 'bfs_check' bfs_check((a) == (b), "(0x%jX) %s != %s (0x%jX)", (uintmax_t)(a), #a, #b, (uintmax_t)(b)) ^~~~~~~~~ tests/bit.c:119:2: note: in expansion of macro 'check_eq' check_eq(rotate_right((uint8_t)0xA1, 4), 0x1A); ^~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:53:4: note: in expansion of macro 'bfs_diag' (bfs_diag(__VA_ARGS__)) \ ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bit.c:64:2: note: in expansion of macro 'bfs_check' bfs_check((a) == (b), "(0x%jX) %s != %s (0x%jX)", (uintmax_t)(a), #a, #b, (uintmax_t)(b)) ^~~~~~~~~ tests/bit.c:120:2: note: in expansion of macro 'check_eq' check_eq(rotate_right((uint16_t)0x1234, 12), 0x2341); ^~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:54:4: note: in expansion of macro 'bfs_diag' (bfs_diag("Check failed: `%s`", str)) ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bit.c:64:2: note: in expansion of macro 'bfs_check' bfs_check((a) == (b), "(0x%jX) %s != %s (0x%jX)", (uintmax_t)(a), #a, #b, (uintmax_t)(b)) ^~~~~~~~~ tests/bit.c:120:2: note: in expansion of macro 'check_eq' check_eq(rotate_right((uint16_t)0x1234, 12), 0x2341); ^~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:53:4: note: in expansion of macro 'bfs_diag' (bfs_diag(__VA_ARGS__)) \ ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bit.c:64:2: note: in expansion of macro 'bfs_check' bfs_check((a) == (b), "(0x%jX) %s != %s (0x%jX)", (uintmax_t)(a), #a, #b, (uintmax_t)(b)) ^~~~~~~~~ tests/bit.c:121:2: note: in expansion of macro 'check_eq' check_eq(rotate_right((uint32_t)0x12345678, 20), 0x45678123); ^~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:54:4: note: in expansion of macro 'bfs_diag' (bfs_diag("Check failed: `%s`", str)) ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bit.c:64:2: note: in expansion of macro 'bfs_check' bfs_check((a) == (b), "(0x%jX) %s != %s (0x%jX)", (uintmax_t)(a), #a, #b, (uintmax_t)(b)) ^~~~~~~~~ tests/bit.c:121:2: note: in expansion of macro 'check_eq' check_eq(rotate_right((uint32_t)0x12345678, 20), 0x45678123); ^~~~~~~~ tests/ptyx.c: In function 'main': src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:53:4: note: in expansion of macro 'bfs_diag' (bfs_diag(__VA_ARGS__)) \ ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bit.c:64:2: note: in expansion of macro 'bfs_check' bfs_check((a) == (b), "(0x%jX) %s != %s (0x%jX)", (uintmax_t)(a), #a, #b, (uintmax_t)(b)) ^~~~~~~~~ tests/bit.c:122:2: note: in expansion of macro 'check_eq' check_eq(rotate_right((uint32_t)0x12345678, 0), 0x12345678); ^~~~~~~~ tests/ptyx.c:60:47: error: expected ')' before '__VA_OPT__' fprintf(stderr, "%s: " format ": %s\n", cmd __VA_OPT__(,) __VA_ARGS__, errstr()); \ ^ tests/ptyx.c:73:5: note: in expansion of macro 'edie' edie("Bad width '%s'", optarg); ^~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:54:4: note: in expansion of macro 'bfs_diag' (bfs_diag("Check failed: `%s`", str)) ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bit.c:64:2: note: in expansion of macro 'bfs_check' bfs_check((a) == (b), "(0x%jX) %s != %s (0x%jX)", (uintmax_t)(a), #a, #b, (uintmax_t)(b)) ^~~~~~~~~ tests/bit.c:122:2: note: in expansion of macro 'check_eq' check_eq(rotate_right((uint32_t)0x12345678, 0), 0x12345678); ^~~~~~~~ tests/ptyx.c:60:19: warning: format '%s' expects a matching 'char *' argument [-Wformat=] fprintf(stderr, "%s: " format ": %s\n", cmd __VA_OPT__(,) __VA_ARGS__, errstr()); \ ^ tests/ptyx.c:73:5: note: in expansion of macro 'edie' edie("Bad width '%s'", optarg); ^~~~ tests/ptyx.c:73:23: note: format string is defined here edie("Bad width '%s'", optarg); ~^ tests/ptyx.c:60:19: warning: format '%s' expects a matching 'char *' argument [-Wformat=] fprintf(stderr, "%s: " format ": %s\n", cmd __VA_OPT__(,) __VA_ARGS__, errstr()); \ ^ tests/ptyx.c:73:5: note: in expansion of macro 'edie' edie("Bad width '%s'", optarg); ^~~~ tests/ptyx.c:60:37: note: format string is defined here fprintf(stderr, "%s: " format ": %s\n", cmd __VA_OPT__(,) __VA_ARGS__, errstr()); \ ~^ tests/ptyx.c:60:47: error: expected ')' before '__VA_OPT__' fprintf(stderr, "%s: " format ": %s\n", cmd __VA_OPT__(,) __VA_ARGS__, errstr()); \ ^ tests/ptyx.c:78:5: note: in expansion of macro 'edie' edie("Bad height '%s'", optarg); ^~~~ tests/ptyx.c:60:19: warning: format '%s' expects a matching 'char *' argument [-Wformat=] fprintf(stderr, "%s: " format ": %s\n", cmd __VA_OPT__(,) __VA_ARGS__, errstr()); \ ^ tests/ptyx.c:78:5: note: in expansion of macro 'edie' edie("Bad height '%s'", optarg); ^~~~ tests/ptyx.c:78:24: note: format string is defined here edie("Bad height '%s'", optarg); ~^ tests/ptyx.c:60:19: warning: format '%s' expects a matching 'char *' argument [-Wformat=] fprintf(stderr, "%s: " format ": %s\n", cmd __VA_OPT__(,) __VA_ARGS__, errstr()); \ ^ tests/ptyx.c:78:5: note: in expansion of macro 'edie' edie("Bad height '%s'", optarg); ^~~~ tests/ptyx.c:60:37: note: format string is defined here fprintf(stderr, "%s: " format ": %s\n", cmd __VA_OPT__(,) __VA_ARGS__, errstr()); \ ~^ tests/ptyx.c:53:43: error: expected ')' before '__VA_OPT__' fprintf(stderr, "%s: " format "\n", cmd __VA_OPT__(,) __VA_ARGS__); \ ^ tests/ptyx.c:82:4: note: in expansion of macro 'die' die("Missing argument to -%c", optopt); ^~~ tests/ptyx.c:53:19: warning: format '%c' expects a matching 'int' argument [-Wformat=] fprintf(stderr, "%s: " format "\n", cmd __VA_OPT__(,) __VA_ARGS__); \ ^ tests/ptyx.c:82:4: note: in expansion of macro 'die' die("Missing argument to -%c", optopt); ^~~ tests/ptyx.c:82:31: note: format string is defined here die("Missing argument to -%c", optopt); ~^ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:53:4: note: in expansion of macro 'bfs_diag' (bfs_diag(__VA_ARGS__)) \ ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bit.c:64:2: note: in expansion of macro 'bfs_check' bfs_check((a) == (b), "(0x%jX) %s != %s (0x%jX)", (uintmax_t)(a), #a, #b, (uintmax_t)(b)) ^~~~~~~~~ tests/bit.c:129:4: note: in expansion of macro 'check_eq' check_eq(count_ones(nm), 1 + (n != m)); ^~~~~~~~ tests/ptyx.c:53:43: error: expected ')' before '__VA_OPT__' fprintf(stderr, "%s: " format "\n", cmd __VA_OPT__(,) __VA_ARGS__); \ ^ tests/ptyx.c:84:4: note: in expansion of macro 'die' die("Unrecognized option -%c", optopt); ^~~ tests/ptyx.c:53:19: warning: format '%c' expects a matching 'int' argument [-Wformat=] fprintf(stderr, "%s: " format "\n", cmd __VA_OPT__(,) __VA_ARGS__); \ ^ tests/ptyx.c:84:4: note: in expansion of macro 'die' die("Unrecognized option -%c", optopt); ^~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:54:4: note: in expansion of macro 'bfs_diag' (bfs_diag("Check failed: `%s`", str)) ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bit.c:64:2: note: in expansion of macro 'bfs_check' bfs_check((a) == (b), "(0x%jX) %s != %s (0x%jX)", (uintmax_t)(a), #a, #b, (uintmax_t)(b)) ^~~~~~~~~ tests/bit.c:129:4: note: in expansion of macro 'check_eq' check_eq(count_ones(nm), 1 + (n != m)); ^~~~~~~~ tests/ptyx.c:84:31: note: format string is defined here die("Unrecognized option -%c", optopt); ~^ tests/ptyx.c:53:43: error: expected ')' before '__VA_OPT__' fprintf(stderr, "%s: " format "\n", cmd __VA_OPT__(,) __VA_ARGS__); \ ^ tests/ptyx.c:89:3: note: in expansion of macro 'die' die("Missing command"); ^~~ tests/ptyx.c:60:47: error: expected ')' before '__VA_OPT__' fprintf(stderr, "%s: " format ": %s\n", cmd __VA_OPT__(,) __VA_ARGS__, errstr()); \ ^ tests/ptyx.c:96:3: note: in expansion of macro 'edie' edie("posix_openpt()"); ^~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:53:4: note: in expansion of macro 'bfs_diag' (bfs_diag(__VA_ARGS__)) \ ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bit.c:64:2: note: in expansion of macro 'bfs_check' bfs_check((a) == (b), "(0x%jX) %s != %s (0x%jX)", (uintmax_t)(a), #a, #b, (uintmax_t)(b)) ^~~~~~~~~ tests/bit.c:130:4: note: in expansion of macro 'check_eq' check_eq(count_zeros(nm), 15 - (n != m)); ^~~~~~~~ tests/ptyx.c:60:19: warning: format '%s' expects a matching 'char *' argument [-Wformat=] fprintf(stderr, "%s: " format ": %s\n", cmd __VA_OPT__(,) __VA_ARGS__, errstr()); \ ^ tests/ptyx.c:96:3: note: in expansion of macro 'edie' edie("posix_openpt()"); ^~~~ tests/ptyx.c:60:37: note: format string is defined here fprintf(stderr, "%s: " format ": %s\n", cmd __VA_OPT__(,) __VA_ARGS__, errstr()); \ ~^ tests/ptyx.c:60:47: error: expected ')' before '__VA_OPT__' fprintf(stderr, "%s: " format ": %s\n", cmd __VA_OPT__(,) __VA_ARGS__, errstr()); \ ^ tests/ptyx.c:99:3: note: in expansion of macro 'edie' edie("grantpt()"); ^~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:54:4: note: in expansion of macro 'bfs_diag' (bfs_diag("Check failed: `%s`", str)) ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bit.c:64:2: note: in expansion of macro 'bfs_check' bfs_check((a) == (b), "(0x%jX) %s != %s (0x%jX)", (uintmax_t)(a), #a, #b, (uintmax_t)(b)) ^~~~~~~~~ tests/bit.c:130:4: note: in expansion of macro 'check_eq' check_eq(count_zeros(nm), 15 - (n != m)); ^~~~~~~~ tests/ptyx.c:60:19: warning: format '%s' expects a matching 'char *' argument [-Wformat=] fprintf(stderr, "%s: " format ": %s\n", cmd __VA_OPT__(,) __VA_ARGS__, errstr()); \ ^ tests/ptyx.c:99:3: note: in expansion of macro 'edie' edie("grantpt()"); ^~~~ tests/ptyx.c:60:37: note: format string is defined here fprintf(stderr, "%s: " format ": %s\n", cmd __VA_OPT__(,) __VA_ARGS__, errstr()); \ ~^ tests/ptyx.c:60:47: error: expected ')' before '__VA_OPT__' fprintf(stderr, "%s: " format ": %s\n", cmd __VA_OPT__(,) __VA_ARGS__, errstr()); \ ^ tests/ptyx.c:102:3: note: in expansion of macro 'edie' edie("unlockpt()"); ^~~~ tests/ptyx.c:60:19: warning: format '%s' expects a matching 'char *' argument [-Wformat=] fprintf(stderr, "%s: " format ": %s\n", cmd __VA_OPT__(,) __VA_ARGS__, errstr()); \ ^ tests/ptyx.c:102:3: note: in expansion of macro 'edie' edie("unlockpt()"); ^~~~ tests/ptyx.c:60:37: note: format string is defined here fprintf(stderr, "%s: " format ": %s\n", cmd __VA_OPT__(,) __VA_ARGS__, errstr()); \ ~^ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:53:4: note: in expansion of macro 'bfs_diag' (bfs_diag(__VA_ARGS__)) \ ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bit.c:64:2: note: in expansion of macro 'bfs_check' bfs_check((a) == (b), "(0x%jX) %s != %s (0x%jX)", (uintmax_t)(a), #a, #b, (uintmax_t)(b)) ^~~~~~~~~ tests/bit.c:131:4: note: in expansion of macro 'check_eq' check_eq(leading_zeros(nm), 15 - j); ^~~~~~~~ tests/ptyx.c:60:47: error: expected ')' before '__VA_OPT__' fprintf(stderr, "%s: " format ": %s\n", cmd __VA_OPT__(,) __VA_ARGS__, errstr()); \ ^ tests/ptyx.c:108:3: note: in expansion of macro 'edie' edie("ptsname()"); ^~~~ tests/ptyx.c:60:19: warning: format '%s' expects a matching 'char *' argument [-Wformat=] fprintf(stderr, "%s: " format ": %s\n", cmd __VA_OPT__(,) __VA_ARGS__, errstr()); \ ^ tests/ptyx.c:108:3: note: in expansion of macro 'edie' edie("ptsname()"); ^~~~ tests/ptyx.c:60:37: note: format string is defined here fprintf(stderr, "%s: " format ": %s\n", cmd __VA_OPT__(,) __VA_ARGS__, errstr()); \ ~^ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:54:4: note: in expansion of macro 'bfs_diag' (bfs_diag("Check failed: `%s`", str)) ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bit.c:64:2: note: in expansion of macro 'bfs_check' bfs_check((a) == (b), "(0x%jX) %s != %s (0x%jX)", (uintmax_t)(a), #a, #b, (uintmax_t)(b)) ^~~~~~~~~ tests/bit.c:131:4: note: in expansion of macro 'check_eq' check_eq(leading_zeros(nm), 15 - j); ^~~~~~~~ tests/ptyx.c:60:47: error: expected ')' before '__VA_OPT__' fprintf(stderr, "%s: " format ": %s\n", cmd __VA_OPT__(,) __VA_ARGS__, errstr()); \ ^ tests/ptyx.c:114:3: note: in expansion of macro 'edie' edie("%s", name); ^~~~ tests/ptyx.c:60:19: warning: format '%s' expects a matching 'char *' argument [-Wformat=] fprintf(stderr, "%s: " format ": %s\n", cmd __VA_OPT__(,) __VA_ARGS__, errstr()); \ ^ tests/ptyx.c:114:3: note: in expansion of macro 'edie' edie("%s", name); ^~~~ tests/ptyx.c:114:10: note: format string is defined here edie("%s", name); ~^ tests/ptyx.c:60:19: warning: format '%s' expects a matching 'char *' argument [-Wformat=] fprintf(stderr, "%s: " format ": %s\n", cmd __VA_OPT__(,) __VA_ARGS__, errstr()); \ ^ tests/ptyx.c:114:3: note: in expansion of macro 'edie' edie("%s", name); ^~~~ tests/ptyx.c:60:37: note: format string is defined here fprintf(stderr, "%s: " format ": %s\n", cmd __VA_OPT__(,) __VA_ARGS__, errstr()); \ ~^ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:53:4: note: in expansion of macro 'bfs_diag' (bfs_diag(__VA_ARGS__)) \ ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bit.c:64:2: note: in expansion of macro 'bfs_check' bfs_check((a) == (b), "(0x%jX) %s != %s (0x%jX)", (uintmax_t)(a), #a, #b, (uintmax_t)(b)) ^~~~~~~~~ tests/bit.c:132:4: note: in expansion of macro 'check_eq' check_eq(trailing_zeros(nm), i); ^~~~~~~~ tests/ptyx.c:60:47: error: expected ')' before '__VA_OPT__' fprintf(stderr, "%s: " format ": %s\n", cmd __VA_OPT__(,) __VA_ARGS__, errstr()); \ ^ tests/ptyx.c:135:5: note: in expansion of macro 'edie' edie("tcgetwinsize()"); ^~~~ tests/ptyx.c:60:19: warning: format '%s' expects a matching 'char *' argument [-Wformat=] fprintf(stderr, "%s: " format ": %s\n", cmd __VA_OPT__(,) __VA_ARGS__, errstr()); \ ^ tests/ptyx.c:135:5: note: in expansion of macro 'edie' edie("tcgetwinsize()"); ^~~~ tests/ptyx.c:60:37: note: format string is defined here fprintf(stderr, "%s: " format ": %s\n", cmd __VA_OPT__(,) __VA_ARGS__, errstr()); \ ~^ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:54:4: note: in expansion of macro 'bfs_diag' (bfs_diag("Check failed: `%s`", str)) ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bit.c:64:2: note: in expansion of macro 'bfs_check' bfs_check((a) == (b), "(0x%jX) %s != %s (0x%jX)", (uintmax_t)(a), #a, #b, (uintmax_t)(b)) ^~~~~~~~~ tests/bit.c:132:4: note: in expansion of macro 'check_eq' check_eq(trailing_zeros(nm), i); ^~~~~~~~ tests/ptyx.c:60:47: error: expected ')' before '__VA_OPT__' fprintf(stderr, "%s: " format ": %s\n", cmd __VA_OPT__(,) __VA_ARGS__, errstr()); \ ^ tests/ptyx.c:156:3: note: in expansion of macro 'edie' edie("tcgetwinsize()"); ^~~~ tests/ptyx.c:60:19: warning: format '%s' expects a matching 'char *' argument [-Wformat=] fprintf(stderr, "%s: " format ": %s\n", cmd __VA_OPT__(,) __VA_ARGS__, errstr()); \ ^ tests/ptyx.c:156:3: note: in expansion of macro 'edie' edie("tcgetwinsize()"); ^~~~ tests/ptyx.c:60:37: note: format string is defined here fprintf(stderr, "%s: " format ": %s\n", cmd __VA_OPT__(,) __VA_ARGS__, errstr()); \ ~^ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:53:4: note: in expansion of macro 'bfs_diag' (bfs_diag(__VA_ARGS__)) \ ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bit.c:64:2: note: in expansion of macro 'bfs_check' bfs_check((a) == (b), "(0x%jX) %s != %s (0x%jX)", (uintmax_t)(a), #a, #b, (uintmax_t)(b)) ^~~~~~~~~ tests/bit.c:133:4: note: in expansion of macro 'check_eq' check_eq(first_leading_one(nm), 16 - j); ^~~~~~~~ tests/ptyx.c:60:47: error: expected ')' before '__VA_OPT__' fprintf(stderr, "%s: " format ": %s\n", cmd __VA_OPT__(,) __VA_ARGS__, errstr()); \ ^ tests/ptyx.c:161:3: note: in expansion of macro 'edie' edie("tcsetwinsize()"); ^~~~ tests/ptyx.c:60:19: warning: format '%s' expects a matching 'char *' argument [-Wformat=] fprintf(stderr, "%s: " format ": %s\n", cmd __VA_OPT__(,) __VA_ARGS__, errstr()); \ ^ tests/ptyx.c:161:3: note: in expansion of macro 'edie' edie("tcsetwinsize()"); ^~~~ tests/ptyx.c:60:37: note: format string is defined here fprintf(stderr, "%s: " format ": %s\n", cmd __VA_OPT__(,) __VA_ARGS__, errstr()); \ ~^ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:54:4: note: in expansion of macro 'bfs_diag' (bfs_diag("Check failed: `%s`", str)) ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bit.c:64:2: note: in expansion of macro 'bfs_check' bfs_check((a) == (b), "(0x%jX) %s != %s (0x%jX)", (uintmax_t)(a), #a, #b, (uintmax_t)(b)) ^~~~~~~~~ tests/bit.c:133:4: note: in expansion of macro 'check_eq' check_eq(first_leading_one(nm), 16 - j); ^~~~~~~~ tests/ptyx.c:60:47: error: expected ')' before '__VA_OPT__' fprintf(stderr, "%s: " format ": %s\n", cmd __VA_OPT__(,) __VA_ARGS__, errstr()); \ ^ tests/ptyx.c:167:3: note: in expansion of macro 'edie' edie("tcgetattr()"); ^~~~ tests/ptyx.c:60:19: warning: format '%s' expects a matching 'char *' argument [-Wformat=] fprintf(stderr, "%s: " format ": %s\n", cmd __VA_OPT__(,) __VA_ARGS__, errstr()); \ ^ tests/ptyx.c:167:3: note: in expansion of macro 'edie' edie("tcgetattr()"); ^~~~ tests/ptyx.c:60:37: note: format string is defined here fprintf(stderr, "%s: " format ": %s\n", cmd __VA_OPT__(,) __VA_ARGS__, errstr()); \ ~^ tests/ptyx.c:60:47: error: expected ')' before '__VA_OPT__' fprintf(stderr, "%s: " format ": %s\n", cmd __VA_OPT__(,) __VA_ARGS__, errstr()); \ ^ tests/ptyx.c:171:3: note: in expansion of macro 'edie' edie("tcsetattr()"); ^~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:53:4: note: in expansion of macro 'bfs_diag' (bfs_diag(__VA_ARGS__)) \ ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bit.c:64:2: note: in expansion of macro 'bfs_check' bfs_check((a) == (b), "(0x%jX) %s != %s (0x%jX)", (uintmax_t)(a), #a, #b, (uintmax_t)(b)) ^~~~~~~~~ tests/bit.c:134:4: note: in expansion of macro 'check_eq' check_eq(first_trailing_one(nm), i + 1); ^~~~~~~~ tests/ptyx.c:60:19: warning: format '%s' expects a matching 'char *' argument [-Wformat=] fprintf(stderr, "%s: " format ": %s\n", cmd __VA_OPT__(,) __VA_ARGS__, errstr()); \ ^ tests/ptyx.c:171:3: note: in expansion of macro 'edie' edie("tcsetattr()"); ^~~~ tests/ptyx.c:60:37: note: format string is defined here fprintf(stderr, "%s: " format ": %s\n", cmd __VA_OPT__(,) __VA_ARGS__, errstr()); \ ~^ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:54:4: note: in expansion of macro 'bfs_diag' (bfs_diag("Check failed: `%s`", str)) ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bit.c:64:2: note: in expansion of macro 'bfs_check' bfs_check((a) == (b), "(0x%jX) %s != %s (0x%jX)", (uintmax_t)(a), #a, #b, (uintmax_t)(b)) ^~~~~~~~~ tests/bit.c:134:4: note: in expansion of macro 'check_eq' check_eq(first_trailing_one(nm), i + 1); ^~~~~~~~ tests/ptyx.c:60:47: error: expected ')' before '__VA_OPT__' fprintf(stderr, "%s: " format ": %s\n", cmd __VA_OPT__(,) __VA_ARGS__, errstr()); \ ^ tests/ptyx.c:176:3: note: in expansion of macro 'edie' edie("fork()"); ^~~~ tests/ptyx.c:60:19: warning: format '%s' expects a matching 'char *' argument [-Wformat=] fprintf(stderr, "%s: " format ": %s\n", cmd __VA_OPT__(,) __VA_ARGS__, errstr()); \ ^ tests/ptyx.c:176:3: note: in expansion of macro 'edie' edie("fork()"); ^~~~ tests/ptyx.c:60:37: note: format string is defined here fprintf(stderr, "%s: " format ": %s\n", cmd __VA_OPT__(,) __VA_ARGS__, errstr()); \ ~^ tests/ptyx.c:60:47: error: expected ')' before '__VA_OPT__' fprintf(stderr, "%s: " format ": %s\n", cmd __VA_OPT__(,) __VA_ARGS__, errstr()); \ ^ tests/ptyx.c:184:4: note: in expansion of macro 'edie' edie("setsid()"); ^~~~ tests/ptyx.c:60:19: warning: format '%s' expects a matching 'char *' argument [-Wformat=] fprintf(stderr, "%s: " format ": %s\n", cmd __VA_OPT__(,) __VA_ARGS__, errstr()); \ ^ tests/ptyx.c:184:4: note: in expansion of macro 'edie' edie("setsid()"); ^~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:53:4: note: in expansion of macro 'bfs_diag' (bfs_diag(__VA_ARGS__)) \ ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bit.c:64:2: note: in expansion of macro 'bfs_check' bfs_check((a) == (b), "(0x%jX) %s != %s (0x%jX)", (uintmax_t)(a), #a, #b, (uintmax_t)(b)) ^~~~~~~~~ tests/bit.c:135:4: note: in expansion of macro 'check_eq' check_eq(bit_width(nm), j + 1); ^~~~~~~~ tests/ptyx.c:60:37: note: format string is defined here fprintf(stderr, "%s: " format ": %s\n", cmd __VA_OPT__(,) __VA_ARGS__, errstr()); \ ~^ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:54:4: note: in expansion of macro 'bfs_diag' (bfs_diag("Check failed: `%s`", str)) ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bit.c:64:2: note: in expansion of macro 'bfs_check' bfs_check((a) == (b), "(0x%jX) %s != %s (0x%jX)", (uintmax_t)(a), #a, #b, (uintmax_t)(b)) ^~~~~~~~~ tests/bit.c:135:4: note: in expansion of macro 'check_eq' check_eq(bit_width(nm), j + 1); ^~~~~~~~ tests/ptyx.c:60:47: error: expected ')' before '__VA_OPT__' fprintf(stderr, "%s: " format ": %s\n", cmd __VA_OPT__(,) __VA_ARGS__, errstr()); \ ^ tests/ptyx.c:190:4: note: in expansion of macro 'edie' edie("ioctl(TIOCSCTTY)"); ^~~~ tests/ptyx.c:60:19: warning: format '%s' expects a matching 'char *' argument [-Wformat=] fprintf(stderr, "%s: " format ": %s\n", cmd __VA_OPT__(,) __VA_ARGS__, errstr()); \ ^ tests/ptyx.c:190:4: note: in expansion of macro 'edie' edie("ioctl(TIOCSCTTY)"); ^~~~ tests/ptyx.c:60:37: note: format string is defined here fprintf(stderr, "%s: " format ": %s\n", cmd __VA_OPT__(,) __VA_ARGS__, errstr()); \ ~^ tests/ptyx.c:60:47: error: expected ')' before '__VA_OPT__' fprintf(stderr, "%s: " format ": %s\n", cmd __VA_OPT__(,) __VA_ARGS__, errstr()); \ ^ tests/ptyx.c:198:4: note: in expansion of macro 'edie' edie("dup2()"); ^~~~ tests/ptyx.c:60:19: warning: format '%s' expects a matching 'char *' argument [-Wformat=] fprintf(stderr, "%s: " format ": %s\n", cmd __VA_OPT__(,) __VA_ARGS__, errstr()); \ ^ tests/ptyx.c:198:4: note: in expansion of macro 'edie' edie("dup2()"); ^~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:53:4: note: in expansion of macro 'bfs_diag' (bfs_diag(__VA_ARGS__)) \ ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bit.c:64:2: note: in expansion of macro 'bfs_check' bfs_check((a) == (b), "(0x%jX) %s != %s (0x%jX)", (uintmax_t)(a), #a, #b, (uintmax_t)(b)) ^~~~~~~~~ tests/bit.c:136:4: note: in expansion of macro 'check_eq' check_eq(bit_floor(nm), m); ^~~~~~~~ tests/ptyx.c:60:37: note: format string is defined here fprintf(stderr, "%s: " format ": %s\n", cmd __VA_OPT__(,) __VA_ARGS__, errstr()); \ ~^ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:54:4: note: in expansion of macro 'bfs_diag' (bfs_diag("Check failed: `%s`", str)) ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bit.c:64:2: note: in expansion of macro 'bfs_check' bfs_check((a) == (b), "(0x%jX) %s != %s (0x%jX)", (uintmax_t)(a), #a, #b, (uintmax_t)(b)) ^~~~~~~~~ tests/bit.c:136:4: note: in expansion of macro 'check_eq' check_eq(bit_floor(nm), m); ^~~~~~~~ tests/ptyx.c:60:47: error: expected ')' before '__VA_OPT__' fprintf(stderr, "%s: " format ": %s\n", cmd __VA_OPT__(,) __VA_ARGS__, errstr()); \ ^ tests/ptyx.c:206:3: note: in expansion of macro 'edie' edie("execvp(): %s", args[0]); ^~~~ tests/ptyx.c:60:19: warning: format '%s' expects a matching 'char *' argument [-Wformat=] fprintf(stderr, "%s: " format ": %s\n", cmd __VA_OPT__(,) __VA_ARGS__, errstr()); \ ^ tests/ptyx.c:206:3: note: in expansion of macro 'edie' edie("execvp(): %s", args[0]); ^~~~ tests/ptyx.c:206:20: note: format string is defined here edie("execvp(): %s", args[0]); ~^ tests/ptyx.c:60:19: warning: format '%s' expects a matching 'char *' argument [-Wformat=] fprintf(stderr, "%s: " format ": %s\n", cmd __VA_OPT__(,) __VA_ARGS__, errstr()); \ ^ tests/ptyx.c:206:3: note: in expansion of macro 'edie' edie("execvp(): %s", args[0]); ^~~~ tests/ptyx.c:60:37: note: format string is defined here fprintf(stderr, "%s: " format ": %s\n", cmd __VA_OPT__(,) __VA_ARGS__, errstr()); \ ~^ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:53:4: note: in expansion of macro 'bfs_diag' (bfs_diag(__VA_ARGS__)) \ ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bit.c:64:2: note: in expansion of macro 'bfs_check' bfs_check((a) == (b), "(0x%jX) %s != %s (0x%jX)", (uintmax_t)(a), #a, #b, (uintmax_t)(b)) ^~~~~~~~~ tests/bit.c:138:5: note: in expansion of macro 'check_eq' check_eq(bit_ceil(nm), m); ^~~~~~~~ tests/ptyx.c:60:47: error: expected ')' before '__VA_OPT__' fprintf(stderr, "%s: " format ": %s\n", cmd __VA_OPT__(,) __VA_ARGS__, errstr()); \ ^ tests/ptyx.c:218:5: note: in expansion of macro 'edie' edie("write()"); ^~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:54:4: note: in expansion of macro 'bfs_diag' (bfs_diag("Check failed: `%s`", str)) ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bit.c:64:2: note: in expansion of macro 'bfs_check' bfs_check((a) == (b), "(0x%jX) %s != %s (0x%jX)", (uintmax_t)(a), #a, #b, (uintmax_t)(b)) ^~~~~~~~~ tests/bit.c:138:5: note: in expansion of macro 'check_eq' check_eq(bit_ceil(nm), m); ^~~~~~~~ tests/ptyx.c:60:19: warning: format '%s' expects a matching 'char *' argument [-Wformat=] fprintf(stderr, "%s: " format ": %s\n", cmd __VA_OPT__(,) __VA_ARGS__, errstr()); \ ^ tests/ptyx.c:218:5: note: in expansion of macro 'edie' edie("write()"); ^~~~ tests/ptyx.c:60:37: note: format string is defined here fprintf(stderr, "%s: " format ": %s\n", cmd __VA_OPT__(,) __VA_ARGS__, errstr()); \ ~^ tests/ptyx.c:53:43: error: expected ')' before '__VA_OPT__' fprintf(stderr, "%s: " format "\n", cmd __VA_OPT__(,) __VA_ARGS__); \ ^ tests/ptyx.c:228:4: note: in expansion of macro 'die' die("read()"); ^~~ src/diag.h:23:10: error: expected expression before ')' token ((format) ? "%s: %s@%s:%d: " format "%s" : "") ^ src/diag.h:41:12: note: in expansion of macro 'BFS_DIAG_FORMAT_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~~~ tests/tests.h:53:4: note: in expansion of macro 'bfs_diag' (bfs_diag(__VA_ARGS__)) \ ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bit.c:139:5: note: in expansion of macro 'bfs_check' bfs_check(has_single_bit(nm)); ^~~~~~~~~ tests/ptyx.c:60:47: error: expected ')' before '__VA_OPT__' fprintf(stderr, "%s: " format ": %s\n", cmd __VA_OPT__(,) __VA_ARGS__, errstr()); \ ^ tests/ptyx.c:236:3: note: in expansion of macro 'edie' edie("waitpid()"); ^~~~ tests/ptyx.c:60:19: warning: format '%s' expects a matching 'char *' argument [-Wformat=] fprintf(stderr, "%s: " format ": %s\n", cmd __VA_OPT__(,) __VA_ARGS__, errstr()); \ ^ tests/ptyx.c:236:3: note: in expansion of macro 'edie' edie("waitpid()"); ^~~~ tests/ptyx.c:60:37: note: format string is defined here fprintf(stderr, "%s: " format ": %s\n", cmd __VA_OPT__(,) __VA_ARGS__, errstr()); \ ~^ src/diag.h:29:60: error: implicit declaration of function '__VA_OPT__'; did you mean '__CHAR_BIT__'? [-Werror=implicit-function-declaration] xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:53:4: note: in expansion of macro 'bfs_diag' (bfs_diag(__VA_ARGS__)) \ ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bit.c:139:5: note: in expansion of macro 'bfs_check' bfs_check(has_single_bit(nm)); ^~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:54:4: note: in expansion of macro 'bfs_diag' (bfs_diag("Check failed: `%s`", str)) ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bit.c:139:5: note: in expansion of macro 'bfs_check' bfs_check(has_single_bit(nm)); ^~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:53:4: note: in expansion of macro 'bfs_diag' (bfs_diag(__VA_ARGS__)) \ ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bit.c:64:2: note: in expansion of macro 'bfs_check' bfs_check((a) == (b), "(0x%jX) %s != %s (0x%jX)", (uintmax_t)(a), #a, #b, (uintmax_t)(b)) ^~~~~~~~~ tests/bit.c:142:6: note: in expansion of macro 'check_eq' check_eq(bit_ceil(nm), (m << 1)); ^~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:54:4: note: in expansion of macro 'bfs_diag' (bfs_diag("Check failed: `%s`", str)) ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bit.c:64:2: note: in expansion of macro 'bfs_check' bfs_check((a) == (b), "(0x%jX) %s != %s (0x%jX)", (uintmax_t)(a), #a, #b, (uintmax_t)(b)) ^~~~~~~~~ tests/bit.c:142:6: note: in expansion of macro 'check_eq' check_eq(bit_ceil(nm), (m << 1)); ^~~~~~~~ src/diag.h:23:10: error: expected expression before ')' token ((format) ? "%s: %s@%s:%d: " format "%s" : "") ^ src/diag.h:41:12: note: in expansion of macro 'BFS_DIAG_FORMAT_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~~~ tests/tests.h:53:4: note: in expansion of macro 'bfs_diag' (bfs_diag(__VA_ARGS__)) \ ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bit.c:144:5: note: in expansion of macro 'bfs_check' bfs_check(!has_single_bit(nm)); ^~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:54:4: note: in expansion of macro 'bfs_diag' (bfs_diag("Check failed: `%s`", str)) ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bit.c:144:5: note: in expansion of macro 'bfs_check' bfs_check(!has_single_bit(nm)); ^~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:53:4: note: in expansion of macro 'bfs_diag' (bfs_diag(__VA_ARGS__)) \ ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bit.c:64:2: note: in expansion of macro 'bfs_check' bfs_check((a) == (b), "(0x%jX) %s != %s (0x%jX)", (uintmax_t)(a), #a, #b, (uintmax_t)(b)) ^~~~~~~~~ tests/bit.c:149:2: note: in expansion of macro 'check_eq' check_eq(leading_zeros((uint16_t)0), 16); ^~~~~~~~ In file included from tests/tests.h:13:0, from tests/bfstd.c:4: src/diag.h:34:1: error: expected identifier or '(' before '[' token [[_printf(1, 2)]] ^ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:54:4: note: in expansion of macro 'bfs_diag' (bfs_diag("Check failed: `%s`", str)) ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bit.c:64:2: note: in expansion of macro 'bfs_check' bfs_check((a) == (b), "(0x%jX) %s != %s (0x%jX)", (uintmax_t)(a), #a, #b, (uintmax_t)(b)) ^~~~~~~~~ tests/bit.c:149:2: note: in expansion of macro 'check_eq' check_eq(leading_zeros((uint16_t)0), 16); ^~~~~~~~ src/diag.h:54:1: error: expected identifier or '(' before '[' token [[_cold]] ^ src/diag.h:144:1: error: expected identifier or '(' before '[' token [[_cold]] ^ src/diag.h:150:1: error: expected identifier or '(' before '[' token [[_cold]] ^ src/diag.h:159:1: error: expected identifier or '(' before '[' token [[_cold]] ^ src/diag.h:168:1: error: expected identifier or '(' before '[' token [[_cold]] ^ src/diag.h:175:1: error: expected identifier or '(' before '[' token [[_cold]] ^ src/diag.h:182:1: error: expected identifier or '(' before '[' token [[_cold]] ^ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:53:4: note: in expansion of macro 'bfs_diag' (bfs_diag(__VA_ARGS__)) \ ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bit.c:64:2: note: in expansion of macro 'bfs_check' bfs_check((a) == (b), "(0x%jX) %s != %s (0x%jX)", (uintmax_t)(a), #a, #b, (uintmax_t)(b)) ^~~~~~~~~ tests/bit.c:150:2: note: in expansion of macro 'check_eq' check_eq(trailing_zeros((uint16_t)0), 16); ^~~~~~~~ src/diag.h:189:1: error: expected identifier or '(' before '[' token [[_cold]] ^ src/diag.h:196:1: error: expected identifier or '(' before '[' token [[_cold]] ^ src/diag.h:202:1: error: expected identifier or '(' before '[' token [[_cold]] ^ src/diag.h:208:1: error: expected identifier or '(' before '[' token [[_cold]] ^ src/diag.h:214:1: error: expected identifier or '(' before '[' token [[_cold]] ^ src/diag.h:220:1: error: expected identifier or '(' before '[' token [[_cold]] ^ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:54:4: note: in expansion of macro 'bfs_diag' (bfs_diag("Check failed: `%s`", str)) ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bit.c:64:2: note: in expansion of macro 'bfs_check' bfs_check((a) == (b), "(0x%jX) %s != %s (0x%jX)", (uintmax_t)(a), #a, #b, (uintmax_t)(b)) ^~~~~~~~~ tests/bit.c:150:2: note: in expansion of macro 'check_eq' check_eq(trailing_zeros((uint16_t)0), 16); ^~~~~~~~ src/diag.h:226:1: error: expected identifier or '(' before '[' token [[_cold]] ^ src/diag.h:232:1: error: expected identifier or '(' before '[' token [[_cold]] ^ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:53:4: note: in expansion of macro 'bfs_diag' (bfs_diag(__VA_ARGS__)) \ ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bit.c:64:2: note: in expansion of macro 'bfs_check' bfs_check((a) == (b), "(0x%jX) %s != %s (0x%jX)", (uintmax_t)(a), #a, #b, (uintmax_t)(b)) ^~~~~~~~~ tests/bit.c:151:2: note: in expansion of macro 'check_eq' check_eq(first_leading_one(0U), 0); ^~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:54:4: note: in expansion of macro 'bfs_diag' (bfs_diag("Check failed: `%s`", str)) ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bit.c:64:2: note: in expansion of macro 'bfs_check' bfs_check((a) == (b), "(0x%jX) %s != %s (0x%jX)", (uintmax_t)(a), #a, #b, (uintmax_t)(b)) ^~~~~~~~~ tests/bit.c:151:2: note: in expansion of macro 'check_eq' check_eq(first_leading_one(0U), 0); ^~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:53:4: note: in expansion of macro 'bfs_diag' (bfs_diag(__VA_ARGS__)) \ ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bit.c:64:2: note: in expansion of macro 'bfs_check' bfs_check((a) == (b), "(0x%jX) %s != %s (0x%jX)", (uintmax_t)(a), #a, #b, (uintmax_t)(b)) ^~~~~~~~~ tests/bit.c:152:2: note: in expansion of macro 'check_eq' check_eq(first_trailing_one(0U), 0); ^~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:54:4: note: in expansion of macro 'bfs_diag' (bfs_diag("Check failed: `%s`", str)) ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bit.c:64:2: note: in expansion of macro 'bfs_check' bfs_check((a) == (b), "(0x%jX) %s != %s (0x%jX)", (uintmax_t)(a), #a, #b, (uintmax_t)(b)) ^~~~~~~~~ tests/bit.c:152:2: note: in expansion of macro 'check_eq' check_eq(first_trailing_one(0U), 0); ^~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:53:4: note: in expansion of macro 'bfs_diag' (bfs_diag(__VA_ARGS__)) \ ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bit.c:64:2: note: in expansion of macro 'bfs_check' bfs_check((a) == (b), "(0x%jX) %s != %s (0x%jX)", (uintmax_t)(a), #a, #b, (uintmax_t)(b)) ^~~~~~~~~ tests/bit.c:153:2: note: in expansion of macro 'check_eq' check_eq(bit_width(0U), 0); ^~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:54:4: note: in expansion of macro 'bfs_diag' (bfs_diag("Check failed: `%s`", str)) ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bit.c:64:2: note: in expansion of macro 'bfs_check' bfs_check((a) == (b), "(0x%jX) %s != %s (0x%jX)", (uintmax_t)(a), #a, #b, (uintmax_t)(b)) ^~~~~~~~~ tests/bit.c:153:2: note: in expansion of macro 'check_eq' check_eq(bit_width(0U), 0); ^~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:53:4: note: in expansion of macro 'bfs_diag' (bfs_diag(__VA_ARGS__)) \ ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bit.c:64:2: note: in expansion of macro 'bfs_check' bfs_check((a) == (b), "(0x%jX) %s != %s (0x%jX)", (uintmax_t)(a), #a, #b, (uintmax_t)(b)) ^~~~~~~~~ tests/bit.c:154:2: note: in expansion of macro 'check_eq' check_eq(bit_floor(0U), 0); ^~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:54:4: note: in expansion of macro 'bfs_diag' (bfs_diag("Check failed: `%s`", str)) ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bit.c:64:2: note: in expansion of macro 'bfs_check' bfs_check((a) == (b), "(0x%jX) %s != %s (0x%jX)", (uintmax_t)(a), #a, #b, (uintmax_t)(b)) ^~~~~~~~~ tests/bit.c:154:2: note: in expansion of macro 'check_eq' check_eq(bit_floor(0U), 0); ^~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:53:4: note: in expansion of macro 'bfs_diag' (bfs_diag(__VA_ARGS__)) \ ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bit.c:64:2: note: in expansion of macro 'bfs_check' bfs_check((a) == (b), "(0x%jX) %s != %s (0x%jX)", (uintmax_t)(a), #a, #b, (uintmax_t)(b)) ^~~~~~~~~ tests/bit.c:155:2: note: in expansion of macro 'check_eq' check_eq(bit_ceil(0U), 1); ^~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:54:4: note: in expansion of macro 'bfs_diag' (bfs_diag("Check failed: `%s`", str)) ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bit.c:64:2: note: in expansion of macro 'bfs_check' bfs_check((a) == (b), "(0x%jX) %s != %s (0x%jX)", (uintmax_t)(a), #a, #b, (uintmax_t)(b)) ^~~~~~~~~ tests/bit.c:155:2: note: in expansion of macro 'check_eq' check_eq(bit_ceil(0U), 1); ^~~~~~~~ src/diag.h:23:10: error: expected expression before ')' token ((format) ? "%s: %s@%s:%d: " format "%s" : "") ^ src/diag.h:41:12: note: in expansion of macro 'BFS_DIAG_FORMAT_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~~~ tests/tests.h:53:4: note: in expansion of macro 'bfs_diag' (bfs_diag(__VA_ARGS__)) \ ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bit.c:157:2: note: in expansion of macro 'bfs_check' bfs_check(!has_single_bit(0U)); ^~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:54:4: note: in expansion of macro 'bfs_diag' (bfs_diag("Check failed: `%s`", str)) ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bit.c:157:2: note: in expansion of macro 'bfs_check' bfs_check(!has_single_bit(0U)); ^~~~~~~~~ src/diag.h:23:10: error: expected expression before ')' token ((format) ? "%s: %s@%s:%d: " format "%s" : "") ^ src/diag.h:41:12: note: in expansion of macro 'BFS_DIAG_FORMAT_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~~~ tests/tests.h:53:4: note: in expansion of macro 'bfs_diag' (bfs_diag(__VA_ARGS__)) \ ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bit.c:158:2: note: in expansion of macro 'bfs_check' bfs_check(!has_single_bit(UINT32_MAX)); ^~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:54:4: note: in expansion of macro 'bfs_diag' (bfs_diag("Check failed: `%s`", str)) ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bit.c:158:2: note: in expansion of macro 'bfs_check' bfs_check(!has_single_bit(UINT32_MAX)); ^~~~~~~~~ src/diag.h:23:10: error: expected expression before ')' token ((format) ? "%s: %s@%s:%d: " format "%s" : "") ^ src/diag.h:41:12: note: in expansion of macro 'BFS_DIAG_FORMAT_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~~~ tests/tests.h:53:4: note: in expansion of macro 'bfs_diag' (bfs_diag(__VA_ARGS__)) \ ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bit.c:159:2: note: in expansion of macro 'bfs_check' bfs_check(has_single_bit(1U << (UINT_WIDTH - 1))); ^~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:54:4: note: in expansion of macro 'bfs_diag' (bfs_diag("Check failed: `%s`", str)) ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bit.c:159:2: note: in expansion of macro 'bfs_check' bfs_check(has_single_bit(1U << (UINT_WIDTH - 1))); ^~~~~~~~~ gmake: *** [Makefile:236: obj/tests/ptyx.o] Error 1 In file included from tests/tests.h:11:0, from tests/bfstd.c:4: tests/bfstd.c: In function 'check_asciilen': src/bfs.h:77:24: error: implicit declaration of function 'BFS_VA_IF_AB__VA_OPT__'; did you mean 'BFS_VA_IF_ABC'? [-Werror=implicit-function-declaration] #define BFS_VA_IF(...) BFS_VA_IF_AB ## __VA_OPT__(C) ^ tests/tests.h:52:2: note: in expansion of macro 'BFS_VA_IF' BFS_VA_IF(__VA_ARGS__) \ ^~~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:19:2: note: in expansion of macro 'bfs_check' bfs_check(asciilen("") == 0); ^~~~~~~~~ src/bfs.h:77:51: error: 'C' undeclared (first use in this function) #define BFS_VA_IF(...) BFS_VA_IF_AB ## __VA_OPT__(C) ^ tests/tests.h:52:2: note: in expansion of macro 'BFS_VA_IF' BFS_VA_IF(__VA_ARGS__) \ ^~~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:19:2: note: in expansion of macro 'bfs_check' bfs_check(asciilen("") == 0); ^~~~~~~~~ src/bfs.h:77:51: note: each undeclared identifier is reported only once for each function it appears in #define BFS_VA_IF(...) BFS_VA_IF_AB ## __VA_OPT__(C) ^ tests/tests.h:52:2: note: in expansion of macro 'BFS_VA_IF' BFS_VA_IF(__VA_ARGS__) \ ^~~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:19:2: note: in expansion of macro 'bfs_check' bfs_check(asciilen("") == 0); ^~~~~~~~~ cc1: some warnings being treated as errors In file included from tests/tests.h:13:0, from tests/bfstd.c:4: src/diag.h:41:2: error: implicit declaration of function 'bfs_diagf'; did you mean 'bfs_diag'? [-Werror=implicit-function-declaration] bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^ tests/tests.h:53:4: note: in expansion of macro 'bfs_diag' (bfs_diag(__VA_ARGS__)) \ ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:19:2: note: in expansion of macro 'bfs_check' bfs_check(asciilen("") == 0); ^~~~~~~~~ src/diag.h:23:10: error: expected expression before ')' token ((format) ? "%s: %s@%s:%d: " format "%s" : "") ^ src/diag.h:41:12: note: in expansion of macro 'BFS_DIAG_FORMAT_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~~~ tests/tests.h:53:4: note: in expansion of macro 'bfs_diag' (bfs_diag(__VA_ARGS__)) \ ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:19:2: note: in expansion of macro 'bfs_check' bfs_check(asciilen("") == 0); ^~~~~~~~~ src/diag.h:29:60: error: implicit declaration of function '__VA_OPT__'; did you mean '__CHAR_BIT__'? [-Werror=implicit-function-declaration] xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:53:4: note: in expansion of macro 'bfs_diag' (bfs_diag(__VA_ARGS__)) \ ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:19:2: note: in expansion of macro 'bfs_check' bfs_check(asciilen("") == 0); ^~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:54:4: note: in expansion of macro 'bfs_diag' (bfs_diag("Check failed: `%s`", str)) ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:19:2: note: in expansion of macro 'bfs_check' bfs_check(asciilen("") == 0); ^~~~~~~~~ src/diag.h:23:10: error: expected expression before ')' token ((format) ? "%s: %s@%s:%d: " format "%s" : "") ^ src/diag.h:41:12: note: in expansion of macro 'BFS_DIAG_FORMAT_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~~~ tests/tests.h:53:4: note: in expansion of macro 'bfs_diag' (bfs_diag(__VA_ARGS__)) \ ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:20:2: note: in expansion of macro 'bfs_check' bfs_check(asciilen("@") == 1); ^~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:54:4: note: in expansion of macro 'bfs_diag' (bfs_diag("Check failed: `%s`", str)) ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:20:2: note: in expansion of macro 'bfs_check' bfs_check(asciilen("@") == 1); ^~~~~~~~~ src/diag.h:23:10: error: expected expression before ')' token ((format) ? "%s: %s@%s:%d: " format "%s" : "") ^ src/diag.h:41:12: note: in expansion of macro 'BFS_DIAG_FORMAT_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~~~ tests/tests.h:53:4: note: in expansion of macro 'bfs_diag' (bfs_diag(__VA_ARGS__)) \ ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:21:2: note: in expansion of macro 'bfs_check' bfs_check(asciilen("@@") == 2); ^~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:54:4: note: in expansion of macro 'bfs_diag' (bfs_diag("Check failed: `%s`", str)) ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:21:2: note: in expansion of macro 'bfs_check' bfs_check(asciilen("@@") == 2); ^~~~~~~~~ src/diag.h:23:10: error: expected expression before ')' token ((format) ? "%s: %s@%s:%d: " format "%s" : "") ^ src/diag.h:41:12: note: in expansion of macro 'BFS_DIAG_FORMAT_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~~~ tests/tests.h:53:4: note: in expansion of macro 'bfs_diag' (bfs_diag(__VA_ARGS__)) \ ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:22:2: note: in expansion of macro 'bfs_check' bfs_check(asciilen("\xFF@") == 0); ^~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:54:4: note: in expansion of macro 'bfs_diag' (bfs_diag("Check failed: `%s`", str)) ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:22:2: note: in expansion of macro 'bfs_check' bfs_check(asciilen("\xFF@") == 0); ^~~~~~~~~ src/diag.h:23:10: error: expected expression before ')' token ((format) ? "%s: %s@%s:%d: " format "%s" : "") ^ src/diag.h:41:12: note: in expansion of macro 'BFS_DIAG_FORMAT_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~~~ tests/tests.h:53:4: note: in expansion of macro 'bfs_diag' (bfs_diag(__VA_ARGS__)) \ ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:23:2: note: in expansion of macro 'bfs_check' bfs_check(asciilen("@\xFF") == 1); ^~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:54:4: note: in expansion of macro 'bfs_diag' (bfs_diag("Check failed: `%s`", str)) ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:23:2: note: in expansion of macro 'bfs_check' bfs_check(asciilen("@\xFF") == 1); ^~~~~~~~~ src/diag.h:23:10: error: expected expression before ')' token ((format) ? "%s: %s@%s:%d: " format "%s" : "") ^ src/diag.h:41:12: note: in expansion of macro 'BFS_DIAG_FORMAT_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~~~ tests/tests.h:53:4: note: in expansion of macro 'bfs_diag' (bfs_diag(__VA_ARGS__)) \ ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:24:2: note: in expansion of macro 'bfs_check' bfs_check(asciilen("@@@@@@@@") == 8); ^~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:54:4: note: in expansion of macro 'bfs_diag' (bfs_diag("Check failed: `%s`", str)) ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:24:2: note: in expansion of macro 'bfs_check' bfs_check(asciilen("@@@@@@@@") == 8); ^~~~~~~~~ src/diag.h:23:10: error: expected expression before ')' token ((format) ? "%s: %s@%s:%d: " format "%s" : "") ^ src/diag.h:41:12: note: in expansion of macro 'BFS_DIAG_FORMAT_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~~~ tests/tests.h:53:4: note: in expansion of macro 'bfs_diag' (bfs_diag(__VA_ARGS__)) \ ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:25:2: note: in expansion of macro 'bfs_check' bfs_check(asciilen("@@@@@@@@@@@@@@@@") == 16); ^~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:54:4: note: in expansion of macro 'bfs_diag' (bfs_diag("Check failed: `%s`", str)) ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:25:2: note: in expansion of macro 'bfs_check' bfs_check(asciilen("@@@@@@@@@@@@@@@@") == 16); ^~~~~~~~~ src/diag.h:23:10: error: expected expression before ')' token ((format) ? "%s: %s@%s:%d: " format "%s" : "") ^ src/diag.h:41:12: note: in expansion of macro 'BFS_DIAG_FORMAT_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~~~ tests/tests.h:53:4: note: in expansion of macro 'bfs_diag' (bfs_diag(__VA_ARGS__)) \ ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:26:2: note: in expansion of macro 'bfs_check' bfs_check(asciilen("@@@@@@@@@@@@@@@@@@@@@@@@") == 24); ^~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:54:4: note: in expansion of macro 'bfs_diag' (bfs_diag("Check failed: `%s`", str)) ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:26:2: note: in expansion of macro 'bfs_check' bfs_check(asciilen("@@@@@@@@@@@@@@@@@@@@@@@@") == 24); ^~~~~~~~~ src/diag.h:23:10: error: expected expression before ')' token ((format) ? "%s: %s@%s:%d: " format "%s" : "") ^ src/diag.h:41:12: note: in expansion of macro 'BFS_DIAG_FORMAT_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~~~ tests/tests.h:53:4: note: in expansion of macro 'bfs_diag' (bfs_diag(__VA_ARGS__)) \ ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:27:2: note: in expansion of macro 'bfs_check' bfs_check(asciilen("@@@@@@@@@@@@@@a\xFF@@@@@@@") == 15); ^~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:54:4: note: in expansion of macro 'bfs_diag' (bfs_diag("Check failed: `%s`", str)) ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:27:2: note: in expansion of macro 'bfs_check' bfs_check(asciilen("@@@@@@@@@@@@@@a\xFF@@@@@@@") == 15); ^~~~~~~~~ src/diag.h:23:10: error: expected expression before ')' token ((format) ? "%s: %s@%s:%d: " format "%s" : "") ^ src/diag.h:41:12: note: in expansion of macro 'BFS_DIAG_FORMAT_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~~~ tests/tests.h:53:4: note: in expansion of macro 'bfs_diag' (bfs_diag(__VA_ARGS__)) \ ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:28:2: note: in expansion of macro 'bfs_check' bfs_check(asciilen("@@@@@@@@@@@@@@@@\xFF@@@@@@@") == 16); ^~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:54:4: note: in expansion of macro 'bfs_diag' (bfs_diag("Check failed: `%s`", str)) ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:28:2: note: in expansion of macro 'bfs_check' bfs_check(asciilen("@@@@@@@@@@@@@@@@\xFF@@@@@@@") == 16); ^~~~~~~~~ src/diag.h:23:10: error: expected expression before ')' token ((format) ? "%s: %s@%s:%d: " format "%s" : "") ^ src/diag.h:41:12: note: in expansion of macro 'BFS_DIAG_FORMAT_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~~~ tests/tests.h:53:4: note: in expansion of macro 'bfs_diag' (bfs_diag(__VA_ARGS__)) \ ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:29:2: note: in expansion of macro 'bfs_check' bfs_check(asciilen("@@@@@@@@@@@@@@@@a\xFF@@@@@@") == 17); ^~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:54:4: note: in expansion of macro 'bfs_diag' (bfs_diag("Check failed: `%s`", str)) ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:29:2: note: in expansion of macro 'bfs_check' bfs_check(asciilen("@@@@@@@@@@@@@@@@a\xFF@@@@@@") == 17); ^~~~~~~~~ src/diag.h:23:10: error: expected expression before ')' token ((format) ? "%s: %s@%s:%d: " format "%s" : "") ^ src/diag.h:41:12: note: in expansion of macro 'BFS_DIAG_FORMAT_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~~~ tests/tests.h:53:4: note: in expansion of macro 'bfs_diag' (bfs_diag(__VA_ARGS__)) \ ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:30:2: note: in expansion of macro 'bfs_check' bfs_check(asciilen("@@@@@@@\xFF@@@@@@a\xFF@@@@@@@") == 7); ^~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:54:4: note: in expansion of macro 'bfs_diag' (bfs_diag("Check failed: `%s`", str)) ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:30:2: note: in expansion of macro 'bfs_check' bfs_check(asciilen("@@@@@@@\xFF@@@@@@a\xFF@@@@@@@") == 7); ^~~~~~~~~ src/diag.h:23:10: error: expected expression before ')' token ((format) ? "%s: %s@%s:%d: " format "%s" : "") ^ src/diag.h:41:12: note: in expansion of macro 'BFS_DIAG_FORMAT_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~~~ tests/tests.h:53:4: note: in expansion of macro 'bfs_diag' (bfs_diag(__VA_ARGS__)) \ ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:31:2: note: in expansion of macro 'bfs_check' bfs_check(asciilen("@@@@@@@@\xFF@@@@@a\xFF@@@@@@@") == 8); ^~~~~~~~~ gmake: *** [Makefile:236: obj/tests/bit.o] Error 1 src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:54:4: note: in expansion of macro 'bfs_diag' (bfs_diag("Check failed: `%s`", str)) ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:31:2: note: in expansion of macro 'bfs_check' bfs_check(asciilen("@@@@@@@@\xFF@@@@@a\xFF@@@@@@@") == 8); ^~~~~~~~~ src/diag.h:23:10: error: expected expression before ')' token ((format) ? "%s: %s@%s:%d: " format "%s" : "") ^ src/diag.h:41:12: note: in expansion of macro 'BFS_DIAG_FORMAT_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~~~ tests/tests.h:53:4: note: in expansion of macro 'bfs_diag' (bfs_diag(__VA_ARGS__)) \ ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:32:2: note: in expansion of macro 'bfs_check' bfs_check(asciilen("@@@@@@@@@\xFF@@@@a\xFF@@@@@@@") == 9); ^~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:54:4: note: in expansion of macro 'bfs_diag' (bfs_diag("Check failed: `%s`", str)) ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:32:2: note: in expansion of macro 'bfs_check' bfs_check(asciilen("@@@@@@@@@\xFF@@@@a\xFF@@@@@@@") == 9); ^~~~~~~~~ In file included from tests/tests.h:11:0, from tests/bfstd.c:4: tests/bfstd.c: In function 'check_base_dir': src/bfs.h:77:51: error: 'C' undeclared (first use in this function) #define BFS_VA_IF(...) BFS_VA_IF_AB ## __VA_OPT__(C) ^ src/diag.h:96:22: note: in expansion of macro 'BFS_VA_IF' ((cond) ? (void)0 : BFS_VA_IF(__VA_ARGS__) \ ^~~~~~~~~ tests/bfstd.c:38:2: note: in expansion of macro 'bfs_everify' bfs_everify(xdir, "xdirname()"); ^~~~~~~~~~~ In file included from tests/tests.h:13:0, from tests/bfstd.c:4: src/diag.h:63:2: error: implicit declaration of function 'bfs_abortf'; did you mean 'bfs_abort'? [-Werror=implicit-function-declaration] bfs_abortf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^ src/diag.h:70:4: note: in expansion of macro 'bfs_abort' (bfs_abort(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~~ src/diag.h:97:4: note: in expansion of macro 'bfs_eabort' (bfs_eabort(__VA_ARGS__)) \ ^~~~~~~~~~ tests/bfstd.c:38:2: note: in expansion of macro 'bfs_everify' bfs_everify(xdir, "xdirname()"); ^~~~~~~~~~~ src/diag.h:70:52: error: expected expression before ',' token (bfs_abort(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:70:4: note: in expansion of macro 'bfs_abort' (bfs_abort(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~~ src/diag.h:97:4: note: in expansion of macro 'bfs_eabort' (bfs_eabort(__VA_ARGS__)) \ ^~~~~~~~~~ tests/bfstd.c:38:2: note: in expansion of macro 'bfs_everify' bfs_everify(xdir, "xdirname()"); ^~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:63:39: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_abortf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:71:4: note: in expansion of macro 'bfs_abort' (bfs_abort("%s", errstr())) ^~~~~~~~~ src/diag.h:97:4: note: in expansion of macro 'bfs_eabort' (bfs_eabort(__VA_ARGS__)) \ ^~~~~~~~~~ tests/bfstd.c:38:2: note: in expansion of macro 'bfs_everify' bfs_everify(xdir, "xdirname()"); ^~~~~~~~~~~ src/diag.h:70:41: error: expected ')' before '__VA_OPT__' (bfs_abort(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:70:4: note: in expansion of macro 'bfs_abort' (bfs_abort(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~~ src/diag.h:98:4: note: in expansion of macro 'bfs_eabort' (bfs_eabort("Assertion failed: `%s`", #cond))) ^~~~~~~~~~ tests/bfstd.c:38:2: note: in expansion of macro 'bfs_everify' bfs_everify(xdir, "xdirname()"); ^~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:63:39: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_abortf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:71:4: note: in expansion of macro 'bfs_abort' (bfs_abort("%s", errstr())) ^~~~~~~~~ src/diag.h:98:4: note: in expansion of macro 'bfs_eabort' (bfs_eabort("Assertion failed: `%s`", #cond))) ^~~~~~~~~~ tests/bfstd.c:38:2: note: in expansion of macro 'bfs_everify' bfs_everify(xdir, "xdirname()"); ^~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:53:4: note: in expansion of macro 'bfs_diag' (bfs_diag(__VA_ARGS__)) \ ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:39:2: note: in expansion of macro 'bfs_check' bfs_check(strcmp(xdir, dir) == 0, "xdirname('%s') == '%s' (!= '%s')", path, xdir, dir); ^~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:54:4: note: in expansion of macro 'bfs_diag' (bfs_diag("Check failed: `%s`", str)) ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:39:2: note: in expansion of macro 'bfs_check' bfs_check(strcmp(xdir, dir) == 0, "xdirname('%s') == '%s' (!= '%s')", path, xdir, dir); ^~~~~~~~~ src/diag.h:70:52: error: expected expression before ',' token (bfs_abort(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:70:4: note: in expansion of macro 'bfs_abort' (bfs_abort(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~~ src/diag.h:97:4: note: in expansion of macro 'bfs_eabort' (bfs_eabort(__VA_ARGS__)) \ ^~~~~~~~~~ tests/bfstd.c:43:2: note: in expansion of macro 'bfs_everify' bfs_everify(xbase, "xbasename()"); ^~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:63:39: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_abortf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:71:4: note: in expansion of macro 'bfs_abort' (bfs_abort("%s", errstr())) ^~~~~~~~~ src/diag.h:97:4: note: in expansion of macro 'bfs_eabort' (bfs_eabort(__VA_ARGS__)) \ ^~~~~~~~~~ tests/bfstd.c:43:2: note: in expansion of macro 'bfs_everify' bfs_everify(xbase, "xbasename()"); ^~~~~~~~~~~ src/diag.h:70:41: error: expected ')' before '__VA_OPT__' (bfs_abort(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:70:4: note: in expansion of macro 'bfs_abort' (bfs_abort(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~~ src/diag.h:98:4: note: in expansion of macro 'bfs_eabort' (bfs_eabort("Assertion failed: `%s`", #cond))) ^~~~~~~~~~ tests/bfstd.c:43:2: note: in expansion of macro 'bfs_everify' bfs_everify(xbase, "xbasename()"); ^~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:63:39: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_abortf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:71:4: note: in expansion of macro 'bfs_abort' (bfs_abort("%s", errstr())) ^~~~~~~~~ src/diag.h:98:4: note: in expansion of macro 'bfs_eabort' (bfs_eabort("Assertion failed: `%s`", #cond))) ^~~~~~~~~~ tests/bfstd.c:43:2: note: in expansion of macro 'bfs_everify' bfs_everify(xbase, "xbasename()"); ^~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:53:4: note: in expansion of macro 'bfs_diag' (bfs_diag(__VA_ARGS__)) \ ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:44:2: note: in expansion of macro 'bfs_check' bfs_check(strcmp(xbase, base) == 0, "xbasename('%s') == '%s' (!= '%s')", path, xbase, base); ^~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:54:4: note: in expansion of macro 'bfs_diag' (bfs_diag("Check failed: `%s`", str)) ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:44:2: note: in expansion of macro 'bfs_check' bfs_check(strcmp(xbase, base) == 0, "xbasename('%s') == '%s' (!= '%s')", path, xbase, base); ^~~~~~~~~ In file included from tests/tests.h:11:0, from tests/bfstd.c:4: tests/bfstd.c: In function 'check_wordesc': src/bfs.h:77:51: error: 'C' undeclared (first use in this function) #define BFS_VA_IF(...) BFS_VA_IF_AB ## __VA_OPT__(C) ^ tests/tests.h:52:2: note: in expansion of macro 'BFS_VA_IF' BFS_VA_IF(__VA_ARGS__) \ ^~~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:69:6: note: in expansion of macro 'bfs_check' if (bfs_check(esc != end)) { ^~~~~~~~~ In file included from tests/tests.h:13:0, from tests/bfstd.c:4: src/diag.h:23:10: error: expected expression before ')' token ((format) ? "%s: %s@%s:%d: " format "%s" : "") ^ src/diag.h:41:12: note: in expansion of macro 'BFS_DIAG_FORMAT_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~~~ tests/tests.h:53:4: note: in expansion of macro 'bfs_diag' (bfs_diag(__VA_ARGS__)) \ ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:69:6: note: in expansion of macro 'bfs_check' if (bfs_check(esc != end)) { ^~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:54:4: note: in expansion of macro 'bfs_diag' (bfs_diag("Check failed: `%s`", str)) ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:69:6: note: in expansion of macro 'bfs_check' if (bfs_check(esc != end)) { ^~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:53:4: note: in expansion of macro 'bfs_diag' (bfs_diag(__VA_ARGS__)) \ ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:70:3: note: in expansion of macro 'bfs_check' bfs_check(strcmp(buf, exp) == 0, "wordesc('%s') == '%s' (!= '%s')", str, buf, exp); ^~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:54:4: note: in expansion of macro 'bfs_diag' (bfs_diag("Check failed: `%s`", str)) ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:70:3: note: in expansion of macro 'bfs_check' bfs_check(strcmp(buf, exp) == 0, "wordesc('%s') == '%s' (!= '%s')", str, buf, exp); ^~~~~~~~~ In file included from tests/tests.h:11:0, from tests/bfstd.c:4: tests/bfstd.c: In function 'check_strtox': src/bfs.h:77:51: error: 'C' undeclared (first use in this function) #define BFS_VA_IF(...) BFS_VA_IF_AB ## __VA_OPT__(C) ^ tests/tests.h:63:2: note: in expansion of macro 'BFS_VA_IF' BFS_VA_IF(__VA_ARGS__) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:110:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtous(str, end, base, &us) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:116:2: note: in expansion of macro 'check_strtouerr' check_strtouerr(ERANGE, "-1", NULL, 0); ^~~~~~~~~~~~~~~ In file included from tests/tests.h:13:0, from tests/bfstd.c:4: src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:110:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtous(str, end, base, &us) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:116:2: note: in expansion of macro 'check_strtouerr' check_strtouerr(ERANGE, "-1", NULL, 0); ^~~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:110:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtous(str, end, base, &us) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:116:2: note: in expansion of macro 'check_strtouerr' check_strtouerr(ERANGE, "-1", NULL, 0); ^~~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:110:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtous(str, end, base, &us) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:116:2: note: in expansion of macro 'check_strtouerr' check_strtouerr(ERANGE, "-1", NULL, 0); ^~~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:110:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtous(str, end, base, &us) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:116:2: note: in expansion of macro 'check_strtouerr' check_strtouerr(ERANGE, "-1", NULL, 0); ^~~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:111:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoui(str, end, base, &ui) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:116:2: note: in expansion of macro 'check_strtouerr' check_strtouerr(ERANGE, "-1", NULL, 0); ^~~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:111:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoui(str, end, base, &ui) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:116:2: note: in expansion of macro 'check_strtouerr' check_strtouerr(ERANGE, "-1", NULL, 0); ^~~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:111:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoui(str, end, base, &ui) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:116:2: note: in expansion of macro 'check_strtouerr' check_strtouerr(ERANGE, "-1", NULL, 0); ^~~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:111:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoui(str, end, base, &ui) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:116:2: note: in expansion of macro 'check_strtouerr' check_strtouerr(ERANGE, "-1", NULL, 0); ^~~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:112:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoul(str, end, base, &ul) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:116:2: note: in expansion of macro 'check_strtouerr' check_strtouerr(ERANGE, "-1", NULL, 0); ^~~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:112:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoul(str, end, base, &ul) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:116:2: note: in expansion of macro 'check_strtouerr' check_strtouerr(ERANGE, "-1", NULL, 0); ^~~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:112:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoul(str, end, base, &ul) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:116:2: note: in expansion of macro 'check_strtouerr' check_strtouerr(ERANGE, "-1", NULL, 0); ^~~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:112:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoul(str, end, base, &ul) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:116:2: note: in expansion of macro 'check_strtouerr' check_strtouerr(ERANGE, "-1", NULL, 0); ^~~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:113:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoull(str, end, base, &ull) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:116:2: note: in expansion of macro 'check_strtouerr' check_strtouerr(ERANGE, "-1", NULL, 0); ^~~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:113:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoull(str, end, base, &ull) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:116:2: note: in expansion of macro 'check_strtouerr' check_strtouerr(ERANGE, "-1", NULL, 0); ^~~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:113:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoull(str, end, base, &ull) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:116:2: note: in expansion of macro 'check_strtouerr' check_strtouerr(ERANGE, "-1", NULL, 0); ^~~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:113:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoull(str, end, base, &ull) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:116:2: note: in expansion of macro 'check_strtouerr' check_strtouerr(ERANGE, "-1", NULL, 0); ^~~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:110:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtous(str, end, base, &us) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:117:2: note: in expansion of macro 'check_strtouerr' check_strtouerr(ERANGE, "-0x1", NULL, 0); ^~~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:110:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtous(str, end, base, &us) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:117:2: note: in expansion of macro 'check_strtouerr' check_strtouerr(ERANGE, "-0x1", NULL, 0); ^~~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:110:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtous(str, end, base, &us) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:117:2: note: in expansion of macro 'check_strtouerr' check_strtouerr(ERANGE, "-0x1", NULL, 0); ^~~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:110:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtous(str, end, base, &us) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:117:2: note: in expansion of macro 'check_strtouerr' check_strtouerr(ERANGE, "-0x1", NULL, 0); ^~~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:111:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoui(str, end, base, &ui) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:117:2: note: in expansion of macro 'check_strtouerr' check_strtouerr(ERANGE, "-0x1", NULL, 0); ^~~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:111:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoui(str, end, base, &ui) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:117:2: note: in expansion of macro 'check_strtouerr' check_strtouerr(ERANGE, "-0x1", NULL, 0); ^~~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:111:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoui(str, end, base, &ui) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:117:2: note: in expansion of macro 'check_strtouerr' check_strtouerr(ERANGE, "-0x1", NULL, 0); ^~~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:111:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoui(str, end, base, &ui) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:117:2: note: in expansion of macro 'check_strtouerr' check_strtouerr(ERANGE, "-0x1", NULL, 0); ^~~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:112:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoul(str, end, base, &ul) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:117:2: note: in expansion of macro 'check_strtouerr' check_strtouerr(ERANGE, "-0x1", NULL, 0); ^~~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:112:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoul(str, end, base, &ul) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:117:2: note: in expansion of macro 'check_strtouerr' check_strtouerr(ERANGE, "-0x1", NULL, 0); ^~~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:112:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoul(str, end, base, &ul) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:117:2: note: in expansion of macro 'check_strtouerr' check_strtouerr(ERANGE, "-0x1", NULL, 0); ^~~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:112:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoul(str, end, base, &ul) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:117:2: note: in expansion of macro 'check_strtouerr' check_strtouerr(ERANGE, "-0x1", NULL, 0); ^~~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:113:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoull(str, end, base, &ull) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:117:2: note: in expansion of macro 'check_strtouerr' check_strtouerr(ERANGE, "-0x1", NULL, 0); ^~~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:113:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoull(str, end, base, &ull) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:117:2: note: in expansion of macro 'check_strtouerr' check_strtouerr(ERANGE, "-0x1", NULL, 0); ^~~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:113:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoull(str, end, base, &ull) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:117:2: note: in expansion of macro 'check_strtouerr' check_strtouerr(ERANGE, "-0x1", NULL, 0); ^~~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:113:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoull(str, end, base, &ull) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:117:2: note: in expansion of macro 'check_strtouerr' check_strtouerr(ERANGE, "-0x1", NULL, 0); ^~~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:110:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtous(str, end, base, &us) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:119:2: note: in expansion of macro 'check_strtouerr' check_strtouerr(EINVAL, "-", NULL, 0); ^~~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:110:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtous(str, end, base, &us) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:119:2: note: in expansion of macro 'check_strtouerr' check_strtouerr(EINVAL, "-", NULL, 0); ^~~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:110:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtous(str, end, base, &us) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:119:2: note: in expansion of macro 'check_strtouerr' check_strtouerr(EINVAL, "-", NULL, 0); ^~~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:110:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtous(str, end, base, &us) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:119:2: note: in expansion of macro 'check_strtouerr' check_strtouerr(EINVAL, "-", NULL, 0); ^~~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:111:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoui(str, end, base, &ui) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:119:2: note: in expansion of macro 'check_strtouerr' check_strtouerr(EINVAL, "-", NULL, 0); ^~~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:111:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoui(str, end, base, &ui) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:119:2: note: in expansion of macro 'check_strtouerr' check_strtouerr(EINVAL, "-", NULL, 0); ^~~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:111:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoui(str, end, base, &ui) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:119:2: note: in expansion of macro 'check_strtouerr' check_strtouerr(EINVAL, "-", NULL, 0); ^~~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:111:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoui(str, end, base, &ui) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:119:2: note: in expansion of macro 'check_strtouerr' check_strtouerr(EINVAL, "-", NULL, 0); ^~~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:112:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoul(str, end, base, &ul) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:119:2: note: in expansion of macro 'check_strtouerr' check_strtouerr(EINVAL, "-", NULL, 0); ^~~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:112:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoul(str, end, base, &ul) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:119:2: note: in expansion of macro 'check_strtouerr' check_strtouerr(EINVAL, "-", NULL, 0); ^~~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:112:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoul(str, end, base, &ul) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:119:2: note: in expansion of macro 'check_strtouerr' check_strtouerr(EINVAL, "-", NULL, 0); ^~~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:112:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoul(str, end, base, &ul) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:119:2: note: in expansion of macro 'check_strtouerr' check_strtouerr(EINVAL, "-", NULL, 0); ^~~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:113:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoull(str, end, base, &ull) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:119:2: note: in expansion of macro 'check_strtouerr' check_strtouerr(EINVAL, "-", NULL, 0); ^~~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:113:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoull(str, end, base, &ull) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:119:2: note: in expansion of macro 'check_strtouerr' check_strtouerr(EINVAL, "-", NULL, 0); ^~~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:113:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoull(str, end, base, &ull) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:119:2: note: in expansion of macro 'check_strtouerr' check_strtouerr(EINVAL, "-", NULL, 0); ^~~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:113:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoull(str, end, base, &ull) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:119:2: note: in expansion of macro 'check_strtouerr' check_strtouerr(EINVAL, "-", NULL, 0); ^~~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:110:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtous(str, end, base, &us) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:120:2: note: in expansion of macro 'check_strtouerr' check_strtouerr(EINVAL, "-q", NULL, 0); ^~~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:110:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtous(str, end, base, &us) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:120:2: note: in expansion of macro 'check_strtouerr' check_strtouerr(EINVAL, "-q", NULL, 0); ^~~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:110:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtous(str, end, base, &us) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:120:2: note: in expansion of macro 'check_strtouerr' check_strtouerr(EINVAL, "-q", NULL, 0); ^~~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:110:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtous(str, end, base, &us) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:120:2: note: in expansion of macro 'check_strtouerr' check_strtouerr(EINVAL, "-q", NULL, 0); ^~~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:111:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoui(str, end, base, &ui) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:120:2: note: in expansion of macro 'check_strtouerr' check_strtouerr(EINVAL, "-q", NULL, 0); ^~~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:111:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoui(str, end, base, &ui) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:120:2: note: in expansion of macro 'check_strtouerr' check_strtouerr(EINVAL, "-q", NULL, 0); ^~~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:111:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoui(str, end, base, &ui) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:120:2: note: in expansion of macro 'check_strtouerr' check_strtouerr(EINVAL, "-q", NULL, 0); ^~~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:111:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoui(str, end, base, &ui) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:120:2: note: in expansion of macro 'check_strtouerr' check_strtouerr(EINVAL, "-q", NULL, 0); ^~~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:112:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoul(str, end, base, &ul) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:120:2: note: in expansion of macro 'check_strtouerr' check_strtouerr(EINVAL, "-q", NULL, 0); ^~~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:112:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoul(str, end, base, &ul) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:120:2: note: in expansion of macro 'check_strtouerr' check_strtouerr(EINVAL, "-q", NULL, 0); ^~~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:112:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoul(str, end, base, &ul) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:120:2: note: in expansion of macro 'check_strtouerr' check_strtouerr(EINVAL, "-q", NULL, 0); ^~~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:112:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoul(str, end, base, &ul) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:120:2: note: in expansion of macro 'check_strtouerr' check_strtouerr(EINVAL, "-q", NULL, 0); ^~~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:113:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoull(str, end, base, &ull) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:120:2: note: in expansion of macro 'check_strtouerr' check_strtouerr(EINVAL, "-q", NULL, 0); ^~~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:113:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoull(str, end, base, &ull) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:120:2: note: in expansion of macro 'check_strtouerr' check_strtouerr(EINVAL, "-q", NULL, 0); ^~~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:113:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoull(str, end, base, &ull) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:120:2: note: in expansion of macro 'check_strtouerr' check_strtouerr(EINVAL, "-q", NULL, 0); ^~~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:113:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoull(str, end, base, &ull) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:120:2: note: in expansion of macro 'check_strtouerr' check_strtouerr(EINVAL, "-q", NULL, 0); ^~~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:110:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtous(str, end, base, &us) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:121:2: note: in expansion of macro 'check_strtouerr' check_strtouerr(EINVAL, "-1q", NULL, 0); ^~~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:110:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtous(str, end, base, &us) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:121:2: note: in expansion of macro 'check_strtouerr' check_strtouerr(EINVAL, "-1q", NULL, 0); ^~~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:110:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtous(str, end, base, &us) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:121:2: note: in expansion of macro 'check_strtouerr' check_strtouerr(EINVAL, "-1q", NULL, 0); ^~~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:110:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtous(str, end, base, &us) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:121:2: note: in expansion of macro 'check_strtouerr' check_strtouerr(EINVAL, "-1q", NULL, 0); ^~~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:111:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoui(str, end, base, &ui) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:121:2: note: in expansion of macro 'check_strtouerr' check_strtouerr(EINVAL, "-1q", NULL, 0); ^~~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:111:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoui(str, end, base, &ui) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:121:2: note: in expansion of macro 'check_strtouerr' check_strtouerr(EINVAL, "-1q", NULL, 0); ^~~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:111:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoui(str, end, base, &ui) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:121:2: note: in expansion of macro 'check_strtouerr' check_strtouerr(EINVAL, "-1q", NULL, 0); ^~~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:111:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoui(str, end, base, &ui) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:121:2: note: in expansion of macro 'check_strtouerr' check_strtouerr(EINVAL, "-1q", NULL, 0); ^~~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:112:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoul(str, end, base, &ul) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:121:2: note: in expansion of macro 'check_strtouerr' check_strtouerr(EINVAL, "-1q", NULL, 0); ^~~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:112:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoul(str, end, base, &ul) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:121:2: note: in expansion of macro 'check_strtouerr' check_strtouerr(EINVAL, "-1q", NULL, 0); ^~~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:112:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoul(str, end, base, &ul) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:121:2: note: in expansion of macro 'check_strtouerr' check_strtouerr(EINVAL, "-1q", NULL, 0); ^~~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:112:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoul(str, end, base, &ul) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:121:2: note: in expansion of macro 'check_strtouerr' check_strtouerr(EINVAL, "-1q", NULL, 0); ^~~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:113:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoull(str, end, base, &ull) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:121:2: note: in expansion of macro 'check_strtouerr' check_strtouerr(EINVAL, "-1q", NULL, 0); ^~~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:113:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoull(str, end, base, &ull) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:121:2: note: in expansion of macro 'check_strtouerr' check_strtouerr(EINVAL, "-1q", NULL, 0); ^~~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:113:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoull(str, end, base, &ull) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:121:2: note: in expansion of macro 'check_strtouerr' check_strtouerr(EINVAL, "-1q", NULL, 0); ^~~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:113:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoull(str, end, base, &ull) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:121:2: note: in expansion of macro 'check_strtouerr' check_strtouerr(EINVAL, "-1q", NULL, 0); ^~~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:110:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtous(str, end, base, &us) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:122:2: note: in expansion of macro 'check_strtouerr' check_strtouerr(EINVAL, "-0x", NULL, 0); ^~~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:110:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtous(str, end, base, &us) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:122:2: note: in expansion of macro 'check_strtouerr' check_strtouerr(EINVAL, "-0x", NULL, 0); ^~~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:110:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtous(str, end, base, &us) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:122:2: note: in expansion of macro 'check_strtouerr' check_strtouerr(EINVAL, "-0x", NULL, 0); ^~~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:110:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtous(str, end, base, &us) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:122:2: note: in expansion of macro 'check_strtouerr' check_strtouerr(EINVAL, "-0x", NULL, 0); ^~~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:111:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoui(str, end, base, &ui) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:122:2: note: in expansion of macro 'check_strtouerr' check_strtouerr(EINVAL, "-0x", NULL, 0); ^~~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:111:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoui(str, end, base, &ui) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:122:2: note: in expansion of macro 'check_strtouerr' check_strtouerr(EINVAL, "-0x", NULL, 0); ^~~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:111:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoui(str, end, base, &ui) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:122:2: note: in expansion of macro 'check_strtouerr' check_strtouerr(EINVAL, "-0x", NULL, 0); ^~~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:111:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoui(str, end, base, &ui) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:122:2: note: in expansion of macro 'check_strtouerr' check_strtouerr(EINVAL, "-0x", NULL, 0); ^~~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:112:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoul(str, end, base, &ul) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:122:2: note: in expansion of macro 'check_strtouerr' check_strtouerr(EINVAL, "-0x", NULL, 0); ^~~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:112:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoul(str, end, base, &ul) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:122:2: note: in expansion of macro 'check_strtouerr' check_strtouerr(EINVAL, "-0x", NULL, 0); ^~~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:112:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoul(str, end, base, &ul) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:122:2: note: in expansion of macro 'check_strtouerr' check_strtouerr(EINVAL, "-0x", NULL, 0); ^~~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:112:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoul(str, end, base, &ul) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:122:2: note: in expansion of macro 'check_strtouerr' check_strtouerr(EINVAL, "-0x", NULL, 0); ^~~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:113:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoull(str, end, base, &ull) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:122:2: note: in expansion of macro 'check_strtouerr' check_strtouerr(EINVAL, "-0x", NULL, 0); ^~~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:113:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoull(str, end, base, &ull) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:122:2: note: in expansion of macro 'check_strtouerr' check_strtouerr(EINVAL, "-0x", NULL, 0); ^~~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:113:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoull(str, end, base, &ull) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:122:2: note: in expansion of macro 'check_strtouerr' check_strtouerr(EINVAL, "-0x", NULL, 0); ^~~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:113:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoull(str, end, base, &ull) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:122:2: note: in expansion of macro 'check_strtouerr' check_strtouerr(EINVAL, "-0x", NULL, 0); ^~~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:126:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtos(str, end, base, &s) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:133:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:126:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtos(str, end, base, &s) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:133:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:126:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtos(str, end, base, &s) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:133:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:126:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtos(str, end, base, &s) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:133:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:127:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoi(str, end, base, &i) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:133:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:127:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoi(str, end, base, &i) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:133:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:127:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoi(str, end, base, &i) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:133:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:127:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoi(str, end, base, &i) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:133:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:128:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtol(str, end, base, &l) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:133:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:128:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtol(str, end, base, &l) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:133:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:128:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtol(str, end, base, &l) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:133:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:128:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtol(str, end, base, &l) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:133:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:129:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoll(str, end, base, &ll) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:133:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:129:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoll(str, end, base, &ll) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:133:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:129:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoll(str, end, base, &ll) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:133:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:129:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoll(str, end, base, &ll) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:133:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:110:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtous(str, end, base, &us) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:130:3: note: in expansion of macro 'check_strtouerr' check_strtouerr(err, str, end, base); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:133:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:110:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtous(str, end, base, &us) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:130:3: note: in expansion of macro 'check_strtouerr' check_strtouerr(err, str, end, base); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:133:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:110:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtous(str, end, base, &us) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:130:3: note: in expansion of macro 'check_strtouerr' check_strtouerr(err, str, end, base); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:133:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:110:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtous(str, end, base, &us) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:130:3: note: in expansion of macro 'check_strtouerr' check_strtouerr(err, str, end, base); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:133:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:111:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoui(str, end, base, &ui) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:130:3: note: in expansion of macro 'check_strtouerr' check_strtouerr(err, str, end, base); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:133:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:111:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoui(str, end, base, &ui) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:130:3: note: in expansion of macro 'check_strtouerr' check_strtouerr(err, str, end, base); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:133:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:111:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoui(str, end, base, &ui) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:130:3: note: in expansion of macro 'check_strtouerr' check_strtouerr(err, str, end, base); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:133:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:111:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoui(str, end, base, &ui) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:130:3: note: in expansion of macro 'check_strtouerr' check_strtouerr(err, str, end, base); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:133:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:112:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoul(str, end, base, &ul) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:130:3: note: in expansion of macro 'check_strtouerr' check_strtouerr(err, str, end, base); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:133:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:112:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoul(str, end, base, &ul) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:130:3: note: in expansion of macro 'check_strtouerr' check_strtouerr(err, str, end, base); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:133:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:112:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoul(str, end, base, &ul) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:130:3: note: in expansion of macro 'check_strtouerr' check_strtouerr(err, str, end, base); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:133:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:112:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoul(str, end, base, &ul) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:130:3: note: in expansion of macro 'check_strtouerr' check_strtouerr(err, str, end, base); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:133:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:113:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoull(str, end, base, &ull) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:130:3: note: in expansion of macro 'check_strtouerr' check_strtouerr(err, str, end, base); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:133:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:113:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoull(str, end, base, &ull) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:130:3: note: in expansion of macro 'check_strtouerr' check_strtouerr(err, str, end, base); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:133:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:113:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoull(str, end, base, &ull) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:130:3: note: in expansion of macro 'check_strtouerr' check_strtouerr(err, str, end, base); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:133:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:113:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoull(str, end, base, &ull) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:130:3: note: in expansion of macro 'check_strtouerr' check_strtouerr(err, str, end, base); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:133:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:126:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtos(str, end, base, &s) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:134:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "", &end, 0); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:126:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtos(str, end, base, &s) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:134:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "", &end, 0); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:126:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtos(str, end, base, &s) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:134:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "", &end, 0); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:126:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtos(str, end, base, &s) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:134:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "", &end, 0); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:127:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoi(str, end, base, &i) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:134:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "", &end, 0); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:127:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoi(str, end, base, &i) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:134:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "", &end, 0); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:127:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoi(str, end, base, &i) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:134:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "", &end, 0); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:127:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoi(str, end, base, &i) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:134:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "", &end, 0); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:128:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtol(str, end, base, &l) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:134:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "", &end, 0); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:128:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtol(str, end, base, &l) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:134:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "", &end, 0); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:128:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtol(str, end, base, &l) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:134:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "", &end, 0); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:128:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtol(str, end, base, &l) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:134:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "", &end, 0); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:129:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoll(str, end, base, &ll) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:134:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "", &end, 0); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:129:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoll(str, end, base, &ll) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:134:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "", &end, 0); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:129:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoll(str, end, base, &ll) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:134:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "", &end, 0); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:129:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoll(str, end, base, &ll) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:134:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "", &end, 0); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:110:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtous(str, end, base, &us) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:130:3: note: in expansion of macro 'check_strtouerr' check_strtouerr(err, str, end, base); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:134:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "", &end, 0); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:110:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtous(str, end, base, &us) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:130:3: note: in expansion of macro 'check_strtouerr' check_strtouerr(err, str, end, base); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:134:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "", &end, 0); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:110:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtous(str, end, base, &us) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:130:3: note: in expansion of macro 'check_strtouerr' check_strtouerr(err, str, end, base); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:134:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "", &end, 0); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:110:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtous(str, end, base, &us) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:130:3: note: in expansion of macro 'check_strtouerr' check_strtouerr(err, str, end, base); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:134:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "", &end, 0); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:111:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoui(str, end, base, &ui) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:130:3: note: in expansion of macro 'check_strtouerr' check_strtouerr(err, str, end, base); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:134:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "", &end, 0); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:111:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoui(str, end, base, &ui) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:130:3: note: in expansion of macro 'check_strtouerr' check_strtouerr(err, str, end, base); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:134:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "", &end, 0); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:111:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoui(str, end, base, &ui) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:130:3: note: in expansion of macro 'check_strtouerr' check_strtouerr(err, str, end, base); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:134:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "", &end, 0); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:111:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoui(str, end, base, &ui) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:130:3: note: in expansion of macro 'check_strtouerr' check_strtouerr(err, str, end, base); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:134:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "", &end, 0); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:112:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoul(str, end, base, &ul) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:130:3: note: in expansion of macro 'check_strtouerr' check_strtouerr(err, str, end, base); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:134:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "", &end, 0); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:112:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoul(str, end, base, &ul) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:130:3: note: in expansion of macro 'check_strtouerr' check_strtouerr(err, str, end, base); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:134:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "", &end, 0); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:112:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoul(str, end, base, &ul) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:130:3: note: in expansion of macro 'check_strtouerr' check_strtouerr(err, str, end, base); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:134:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "", &end, 0); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:112:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoul(str, end, base, &ul) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:130:3: note: in expansion of macro 'check_strtouerr' check_strtouerr(err, str, end, base); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:134:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "", &end, 0); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:113:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoull(str, end, base, &ull) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:130:3: note: in expansion of macro 'check_strtouerr' check_strtouerr(err, str, end, base); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:134:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "", &end, 0); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:113:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoull(str, end, base, &ull) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:130:3: note: in expansion of macro 'check_strtouerr' check_strtouerr(err, str, end, base); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:134:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "", &end, 0); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:113:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoull(str, end, base, &ull) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:130:3: note: in expansion of macro 'check_strtouerr' check_strtouerr(err, str, end, base); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:134:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "", &end, 0); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:113:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoull(str, end, base, &ull) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:130:3: note: in expansion of macro 'check_strtouerr' check_strtouerr(err, str, end, base); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:134:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "", &end, 0); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:126:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtos(str, end, base, &s) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:135:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, " 1 ", &end, 0); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:126:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtos(str, end, base, &s) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:135:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, " 1 ", &end, 0); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:126:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtos(str, end, base, &s) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:135:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, " 1 ", &end, 0); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:126:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtos(str, end, base, &s) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:135:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, " 1 ", &end, 0); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:127:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoi(str, end, base, &i) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:135:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, " 1 ", &end, 0); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:127:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoi(str, end, base, &i) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:135:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, " 1 ", &end, 0); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:127:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoi(str, end, base, &i) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:135:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, " 1 ", &end, 0); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:127:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoi(str, end, base, &i) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:135:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, " 1 ", &end, 0); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:128:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtol(str, end, base, &l) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:135:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, " 1 ", &end, 0); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:128:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtol(str, end, base, &l) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:135:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, " 1 ", &end, 0); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:128:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtol(str, end, base, &l) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:135:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, " 1 ", &end, 0); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:128:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtol(str, end, base, &l) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:135:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, " 1 ", &end, 0); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:129:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoll(str, end, base, &ll) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:135:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, " 1 ", &end, 0); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:129:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoll(str, end, base, &ll) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:135:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, " 1 ", &end, 0); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:129:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoll(str, end, base, &ll) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:135:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, " 1 ", &end, 0); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:129:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoll(str, end, base, &ll) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:135:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, " 1 ", &end, 0); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:110:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtous(str, end, base, &us) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:130:3: note: in expansion of macro 'check_strtouerr' check_strtouerr(err, str, end, base); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:135:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, " 1 ", &end, 0); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:110:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtous(str, end, base, &us) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:130:3: note: in expansion of macro 'check_strtouerr' check_strtouerr(err, str, end, base); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:135:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, " 1 ", &end, 0); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:110:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtous(str, end, base, &us) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:130:3: note: in expansion of macro 'check_strtouerr' check_strtouerr(err, str, end, base); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:135:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, " 1 ", &end, 0); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:110:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtous(str, end, base, &us) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:130:3: note: in expansion of macro 'check_strtouerr' check_strtouerr(err, str, end, base); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:135:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, " 1 ", &end, 0); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:111:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoui(str, end, base, &ui) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:130:3: note: in expansion of macro 'check_strtouerr' check_strtouerr(err, str, end, base); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:135:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, " 1 ", &end, 0); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:111:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoui(str, end, base, &ui) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:130:3: note: in expansion of macro 'check_strtouerr' check_strtouerr(err, str, end, base); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:135:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, " 1 ", &end, 0); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:111:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoui(str, end, base, &ui) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:130:3: note: in expansion of macro 'check_strtouerr' check_strtouerr(err, str, end, base); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:135:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, " 1 ", &end, 0); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:111:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoui(str, end, base, &ui) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:130:3: note: in expansion of macro 'check_strtouerr' check_strtouerr(err, str, end, base); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:135:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, " 1 ", &end, 0); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:112:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoul(str, end, base, &ul) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:130:3: note: in expansion of macro 'check_strtouerr' check_strtouerr(err, str, end, base); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:135:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, " 1 ", &end, 0); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:112:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoul(str, end, base, &ul) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:130:3: note: in expansion of macro 'check_strtouerr' check_strtouerr(err, str, end, base); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:135:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, " 1 ", &end, 0); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:112:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoul(str, end, base, &ul) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:130:3: note: in expansion of macro 'check_strtouerr' check_strtouerr(err, str, end, base); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:135:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, " 1 ", &end, 0); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:112:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoul(str, end, base, &ul) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:130:3: note: in expansion of macro 'check_strtouerr' check_strtouerr(err, str, end, base); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:135:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, " 1 ", &end, 0); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:113:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoull(str, end, base, &ull) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:130:3: note: in expansion of macro 'check_strtouerr' check_strtouerr(err, str, end, base); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:135:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, " 1 ", &end, 0); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:113:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoull(str, end, base, &ull) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:130:3: note: in expansion of macro 'check_strtouerr' check_strtouerr(err, str, end, base); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:135:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, " 1 ", &end, 0); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:113:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoull(str, end, base, &ull) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:130:3: note: in expansion of macro 'check_strtouerr' check_strtouerr(err, str, end, base); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:135:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, " 1 ", &end, 0); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:113:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoull(str, end, base, &ull) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:130:3: note: in expansion of macro 'check_strtouerr' check_strtouerr(err, str, end, base); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:135:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, " 1 ", &end, 0); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:126:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtos(str, end, base, &s) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:136:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, " -1", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:126:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtos(str, end, base, &s) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:136:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, " -1", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:126:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtos(str, end, base, &s) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:136:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, " -1", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:126:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtos(str, end, base, &s) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:136:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, " -1", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:127:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoi(str, end, base, &i) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:136:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, " -1", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:127:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoi(str, end, base, &i) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:136:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, " -1", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:127:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoi(str, end, base, &i) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:136:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, " -1", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:127:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoi(str, end, base, &i) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:136:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, " -1", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:128:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtol(str, end, base, &l) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:136:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, " -1", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:128:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtol(str, end, base, &l) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:136:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, " -1", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:128:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtol(str, end, base, &l) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:136:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, " -1", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:128:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtol(str, end, base, &l) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:136:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, " -1", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:129:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoll(str, end, base, &ll) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:136:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, " -1", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:129:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoll(str, end, base, &ll) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:136:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, " -1", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:129:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoll(str, end, base, &ll) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:136:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, " -1", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:129:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoll(str, end, base, &ll) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:136:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, " -1", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:110:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtous(str, end, base, &us) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:130:3: note: in expansion of macro 'check_strtouerr' check_strtouerr(err, str, end, base); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:136:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, " -1", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:110:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtous(str, end, base, &us) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:130:3: note: in expansion of macro 'check_strtouerr' check_strtouerr(err, str, end, base); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:136:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, " -1", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:110:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtous(str, end, base, &us) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:130:3: note: in expansion of macro 'check_strtouerr' check_strtouerr(err, str, end, base); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:136:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, " -1", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:110:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtous(str, end, base, &us) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:130:3: note: in expansion of macro 'check_strtouerr' check_strtouerr(err, str, end, base); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:136:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, " -1", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:111:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoui(str, end, base, &ui) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:130:3: note: in expansion of macro 'check_strtouerr' check_strtouerr(err, str, end, base); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:136:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, " -1", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:111:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoui(str, end, base, &ui) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:130:3: note: in expansion of macro 'check_strtouerr' check_strtouerr(err, str, end, base); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:136:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, " -1", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:111:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoui(str, end, base, &ui) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:130:3: note: in expansion of macro 'check_strtouerr' check_strtouerr(err, str, end, base); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:136:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, " -1", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:111:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoui(str, end, base, &ui) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:130:3: note: in expansion of macro 'check_strtouerr' check_strtouerr(err, str, end, base); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:136:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, " -1", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:112:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoul(str, end, base, &ul) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:130:3: note: in expansion of macro 'check_strtouerr' check_strtouerr(err, str, end, base); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:136:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, " -1", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:112:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoul(str, end, base, &ul) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:130:3: note: in expansion of macro 'check_strtouerr' check_strtouerr(err, str, end, base); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:136:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, " -1", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:112:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoul(str, end, base, &ul) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:130:3: note: in expansion of macro 'check_strtouerr' check_strtouerr(err, str, end, base); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:136:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, " -1", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:112:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoul(str, end, base, &ul) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:130:3: note: in expansion of macro 'check_strtouerr' check_strtouerr(err, str, end, base); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:136:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, " -1", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:113:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoull(str, end, base, &ull) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:130:3: note: in expansion of macro 'check_strtouerr' check_strtouerr(err, str, end, base); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:136:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, " -1", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:113:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoull(str, end, base, &ull) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:130:3: note: in expansion of macro 'check_strtouerr' check_strtouerr(err, str, end, base); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:136:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, " -1", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:113:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoull(str, end, base, &ull) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:130:3: note: in expansion of macro 'check_strtouerr' check_strtouerr(err, str, end, base); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:136:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, " -1", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:113:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoull(str, end, base, &ull) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:130:3: note: in expansion of macro 'check_strtouerr' check_strtouerr(err, str, end, base); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:136:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, " -1", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:126:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtos(str, end, base, &s) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:137:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, " 123", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:126:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtos(str, end, base, &s) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:137:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, " 123", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:126:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtos(str, end, base, &s) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:137:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, " 123", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:126:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtos(str, end, base, &s) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:137:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, " 123", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:127:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoi(str, end, base, &i) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:137:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, " 123", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:127:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoi(str, end, base, &i) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:137:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, " 123", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:127:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoi(str, end, base, &i) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:137:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, " 123", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:127:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoi(str, end, base, &i) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:137:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, " 123", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:128:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtol(str, end, base, &l) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:137:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, " 123", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:128:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtol(str, end, base, &l) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:137:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, " 123", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:128:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtol(str, end, base, &l) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:137:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, " 123", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:128:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtol(str, end, base, &l) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:137:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, " 123", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:129:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoll(str, end, base, &ll) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:137:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, " 123", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:129:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoll(str, end, base, &ll) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:137:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, " 123", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:129:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoll(str, end, base, &ll) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:137:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, " 123", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:129:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoll(str, end, base, &ll) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:137:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, " 123", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:110:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtous(str, end, base, &us) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:130:3: note: in expansion of macro 'check_strtouerr' check_strtouerr(err, str, end, base); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:137:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, " 123", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:110:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtous(str, end, base, &us) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:130:3: note: in expansion of macro 'check_strtouerr' check_strtouerr(err, str, end, base); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:137:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, " 123", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:110:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtous(str, end, base, &us) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:130:3: note: in expansion of macro 'check_strtouerr' check_strtouerr(err, str, end, base); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:137:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, " 123", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:110:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtous(str, end, base, &us) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:130:3: note: in expansion of macro 'check_strtouerr' check_strtouerr(err, str, end, base); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:137:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, " 123", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:111:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoui(str, end, base, &ui) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:130:3: note: in expansion of macro 'check_strtouerr' check_strtouerr(err, str, end, base); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:137:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, " 123", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:111:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoui(str, end, base, &ui) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:130:3: note: in expansion of macro 'check_strtouerr' check_strtouerr(err, str, end, base); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:137:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, " 123", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:111:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoui(str, end, base, &ui) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:130:3: note: in expansion of macro 'check_strtouerr' check_strtouerr(err, str, end, base); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:137:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, " 123", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:111:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoui(str, end, base, &ui) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:130:3: note: in expansion of macro 'check_strtouerr' check_strtouerr(err, str, end, base); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:137:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, " 123", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:112:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoul(str, end, base, &ul) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:130:3: note: in expansion of macro 'check_strtouerr' check_strtouerr(err, str, end, base); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:137:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, " 123", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:112:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoul(str, end, base, &ul) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:130:3: note: in expansion of macro 'check_strtouerr' check_strtouerr(err, str, end, base); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:137:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, " 123", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:112:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoul(str, end, base, &ul) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:130:3: note: in expansion of macro 'check_strtouerr' check_strtouerr(err, str, end, base); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:137:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, " 123", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:112:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoul(str, end, base, &ul) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:130:3: note: in expansion of macro 'check_strtouerr' check_strtouerr(err, str, end, base); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:137:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, " 123", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:113:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoull(str, end, base, &ull) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:130:3: note: in expansion of macro 'check_strtouerr' check_strtouerr(err, str, end, base); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:137:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, " 123", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:113:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoull(str, end, base, &ull) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:130:3: note: in expansion of macro 'check_strtouerr' check_strtouerr(err, str, end, base); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:137:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, " 123", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:113:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoull(str, end, base, &ull) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:130:3: note: in expansion of macro 'check_strtouerr' check_strtouerr(err, str, end, base); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:137:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, " 123", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:113:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoull(str, end, base, &ull) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:130:3: note: in expansion of macro 'check_strtouerr' check_strtouerr(err, str, end, base); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:137:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, " 123", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:126:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtos(str, end, base, &s) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:138:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "123 ", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:126:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtos(str, end, base, &s) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:138:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "123 ", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:126:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtos(str, end, base, &s) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:138:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "123 ", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:126:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtos(str, end, base, &s) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:138:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "123 ", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:127:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoi(str, end, base, &i) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:138:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "123 ", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:127:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoi(str, end, base, &i) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:138:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "123 ", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:127:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoi(str, end, base, &i) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:138:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "123 ", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:127:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoi(str, end, base, &i) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:138:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "123 ", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:128:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtol(str, end, base, &l) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:138:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "123 ", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:128:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtol(str, end, base, &l) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:138:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "123 ", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:128:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtol(str, end, base, &l) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:138:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "123 ", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:128:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtol(str, end, base, &l) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:138:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "123 ", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:129:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoll(str, end, base, &ll) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:138:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "123 ", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:129:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoll(str, end, base, &ll) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:138:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "123 ", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:129:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoll(str, end, base, &ll) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:138:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "123 ", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:129:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoll(str, end, base, &ll) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:138:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "123 ", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:110:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtous(str, end, base, &us) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:130:3: note: in expansion of macro 'check_strtouerr' check_strtouerr(err, str, end, base); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:138:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "123 ", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:110:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtous(str, end, base, &us) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:130:3: note: in expansion of macro 'check_strtouerr' check_strtouerr(err, str, end, base); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:138:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "123 ", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:110:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtous(str, end, base, &us) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:130:3: note: in expansion of macro 'check_strtouerr' check_strtouerr(err, str, end, base); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:138:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "123 ", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:110:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtous(str, end, base, &us) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:130:3: note: in expansion of macro 'check_strtouerr' check_strtouerr(err, str, end, base); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:138:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "123 ", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:111:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoui(str, end, base, &ui) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:130:3: note: in expansion of macro 'check_strtouerr' check_strtouerr(err, str, end, base); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:138:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "123 ", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:111:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoui(str, end, base, &ui) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:130:3: note: in expansion of macro 'check_strtouerr' check_strtouerr(err, str, end, base); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:138:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "123 ", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:111:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoui(str, end, base, &ui) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:130:3: note: in expansion of macro 'check_strtouerr' check_strtouerr(err, str, end, base); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:138:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "123 ", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:111:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoui(str, end, base, &ui) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:130:3: note: in expansion of macro 'check_strtouerr' check_strtouerr(err, str, end, base); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:138:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "123 ", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:112:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoul(str, end, base, &ul) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:130:3: note: in expansion of macro 'check_strtouerr' check_strtouerr(err, str, end, base); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:138:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "123 ", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:112:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoul(str, end, base, &ul) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:130:3: note: in expansion of macro 'check_strtouerr' check_strtouerr(err, str, end, base); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:138:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "123 ", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:112:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoul(str, end, base, &ul) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:130:3: note: in expansion of macro 'check_strtouerr' check_strtouerr(err, str, end, base); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:138:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "123 ", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:112:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoul(str, end, base, &ul) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:130:3: note: in expansion of macro 'check_strtouerr' check_strtouerr(err, str, end, base); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:138:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "123 ", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:113:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoull(str, end, base, &ull) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:130:3: note: in expansion of macro 'check_strtouerr' check_strtouerr(err, str, end, base); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:138:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "123 ", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:113:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoull(str, end, base, &ull) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:130:3: note: in expansion of macro 'check_strtouerr' check_strtouerr(err, str, end, base); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:138:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "123 ", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:113:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoull(str, end, base, &ull) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:130:3: note: in expansion of macro 'check_strtouerr' check_strtouerr(err, str, end, base); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:138:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "123 ", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:113:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoull(str, end, base, &ull) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:130:3: note: in expansion of macro 'check_strtouerr' check_strtouerr(err, str, end, base); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:138:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "123 ", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:126:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtos(str, end, base, &s) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:139:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "0789", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:126:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtos(str, end, base, &s) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:139:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "0789", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:126:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtos(str, end, base, &s) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:139:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "0789", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:126:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtos(str, end, base, &s) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:139:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "0789", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:127:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoi(str, end, base, &i) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:139:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "0789", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:127:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoi(str, end, base, &i) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:139:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "0789", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:127:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoi(str, end, base, &i) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:139:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "0789", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:127:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoi(str, end, base, &i) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:139:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "0789", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:128:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtol(str, end, base, &l) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:139:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "0789", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:128:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtol(str, end, base, &l) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:139:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "0789", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:128:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtol(str, end, base, &l) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:139:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "0789", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:128:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtol(str, end, base, &l) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:139:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "0789", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:129:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoll(str, end, base, &ll) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:139:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "0789", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:129:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoll(str, end, base, &ll) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:139:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "0789", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:129:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoll(str, end, base, &ll) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:139:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "0789", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:129:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoll(str, end, base, &ll) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:139:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "0789", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:110:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtous(str, end, base, &us) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:130:3: note: in expansion of macro 'check_strtouerr' check_strtouerr(err, str, end, base); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:139:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "0789", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:110:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtous(str, end, base, &us) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:130:3: note: in expansion of macro 'check_strtouerr' check_strtouerr(err, str, end, base); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:139:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "0789", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:110:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtous(str, end, base, &us) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:130:3: note: in expansion of macro 'check_strtouerr' check_strtouerr(err, str, end, base); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:139:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "0789", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:110:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtous(str, end, base, &us) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:130:3: note: in expansion of macro 'check_strtouerr' check_strtouerr(err, str, end, base); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:139:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "0789", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:111:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoui(str, end, base, &ui) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:130:3: note: in expansion of macro 'check_strtouerr' check_strtouerr(err, str, end, base); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:139:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "0789", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:111:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoui(str, end, base, &ui) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:130:3: note: in expansion of macro 'check_strtouerr' check_strtouerr(err, str, end, base); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:139:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "0789", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:111:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoui(str, end, base, &ui) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:130:3: note: in expansion of macro 'check_strtouerr' check_strtouerr(err, str, end, base); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:139:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "0789", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:111:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoui(str, end, base, &ui) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:130:3: note: in expansion of macro 'check_strtouerr' check_strtouerr(err, str, end, base); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:139:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "0789", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:112:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoul(str, end, base, &ul) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:130:3: note: in expansion of macro 'check_strtouerr' check_strtouerr(err, str, end, base); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:139:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "0789", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:112:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoul(str, end, base, &ul) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:130:3: note: in expansion of macro 'check_strtouerr' check_strtouerr(err, str, end, base); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:139:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "0789", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:112:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoul(str, end, base, &ul) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:130:3: note: in expansion of macro 'check_strtouerr' check_strtouerr(err, str, end, base); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:139:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "0789", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:112:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoul(str, end, base, &ul) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:130:3: note: in expansion of macro 'check_strtouerr' check_strtouerr(err, str, end, base); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:139:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "0789", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:113:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoull(str, end, base, &ull) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:130:3: note: in expansion of macro 'check_strtouerr' check_strtouerr(err, str, end, base); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:139:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "0789", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:113:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoull(str, end, base, &ull) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:130:3: note: in expansion of macro 'check_strtouerr' check_strtouerr(err, str, end, base); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:139:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "0789", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:113:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoull(str, end, base, &ull) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:130:3: note: in expansion of macro 'check_strtouerr' check_strtouerr(err, str, end, base); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:139:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "0789", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:113:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoull(str, end, base, &ull) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:130:3: note: in expansion of macro 'check_strtouerr' check_strtouerr(err, str, end, base); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:139:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "0789", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:126:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtos(str, end, base, &s) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:140:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "789A", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:126:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtos(str, end, base, &s) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:140:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "789A", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:126:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtos(str, end, base, &s) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:140:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "789A", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:126:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtos(str, end, base, &s) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:140:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "789A", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:127:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoi(str, end, base, &i) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:140:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "789A", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:127:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoi(str, end, base, &i) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:140:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "789A", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:127:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoi(str, end, base, &i) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:140:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "789A", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:127:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoi(str, end, base, &i) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:140:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "789A", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:128:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtol(str, end, base, &l) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:140:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "789A", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:128:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtol(str, end, base, &l) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:140:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "789A", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:128:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtol(str, end, base, &l) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:140:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "789A", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:128:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtol(str, end, base, &l) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:140:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "789A", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:129:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoll(str, end, base, &ll) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:140:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "789A", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:129:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoll(str, end, base, &ll) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:140:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "789A", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:129:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoll(str, end, base, &ll) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:140:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "789A", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:129:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoll(str, end, base, &ll) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:140:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "789A", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:110:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtous(str, end, base, &us) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:130:3: note: in expansion of macro 'check_strtouerr' check_strtouerr(err, str, end, base); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:140:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "789A", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:110:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtous(str, end, base, &us) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:130:3: note: in expansion of macro 'check_strtouerr' check_strtouerr(err, str, end, base); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:140:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "789A", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:110:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtous(str, end, base, &us) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:130:3: note: in expansion of macro 'check_strtouerr' check_strtouerr(err, str, end, base); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:140:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "789A", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:110:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtous(str, end, base, &us) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:130:3: note: in expansion of macro 'check_strtouerr' check_strtouerr(err, str, end, base); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:140:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "789A", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:111:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoui(str, end, base, &ui) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:130:3: note: in expansion of macro 'check_strtouerr' check_strtouerr(err, str, end, base); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:140:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "789A", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:111:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoui(str, end, base, &ui) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:130:3: note: in expansion of macro 'check_strtouerr' check_strtouerr(err, str, end, base); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:140:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "789A", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:111:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoui(str, end, base, &ui) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:130:3: note: in expansion of macro 'check_strtouerr' check_strtouerr(err, str, end, base); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:140:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "789A", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:111:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoui(str, end, base, &ui) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:130:3: note: in expansion of macro 'check_strtouerr' check_strtouerr(err, str, end, base); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:140:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "789A", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:112:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoul(str, end, base, &ul) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:130:3: note: in expansion of macro 'check_strtouerr' check_strtouerr(err, str, end, base); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:140:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "789A", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:112:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoul(str, end, base, &ul) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:130:3: note: in expansion of macro 'check_strtouerr' check_strtouerr(err, str, end, base); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:140:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "789A", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:112:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoul(str, end, base, &ul) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:130:3: note: in expansion of macro 'check_strtouerr' check_strtouerr(err, str, end, base); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:140:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "789A", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:112:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoul(str, end, base, &ul) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:130:3: note: in expansion of macro 'check_strtouerr' check_strtouerr(err, str, end, base); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:140:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "789A", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:113:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoull(str, end, base, &ull) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:130:3: note: in expansion of macro 'check_strtouerr' check_strtouerr(err, str, end, base); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:140:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "789A", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:113:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoull(str, end, base, &ull) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:130:3: note: in expansion of macro 'check_strtouerr' check_strtouerr(err, str, end, base); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:140:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "789A", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:113:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoull(str, end, base, &ull) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:130:3: note: in expansion of macro 'check_strtouerr' check_strtouerr(err, str, end, base); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:140:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "789A", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:113:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoull(str, end, base, &ull) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:130:3: note: in expansion of macro 'check_strtouerr' check_strtouerr(err, str, end, base); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:140:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "789A", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:126:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtos(str, end, base, &s) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:141:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "0x", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:126:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtos(str, end, base, &s) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:141:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "0x", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:126:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtos(str, end, base, &s) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:141:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "0x", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:126:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtos(str, end, base, &s) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:141:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "0x", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:127:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoi(str, end, base, &i) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:141:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "0x", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:127:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoi(str, end, base, &i) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:141:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "0x", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:127:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoi(str, end, base, &i) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:141:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "0x", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:127:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoi(str, end, base, &i) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:141:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "0x", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:128:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtol(str, end, base, &l) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:141:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "0x", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:128:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtol(str, end, base, &l) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:141:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "0x", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:128:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtol(str, end, base, &l) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:141:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "0x", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:128:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtol(str, end, base, &l) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:141:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "0x", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:129:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoll(str, end, base, &ll) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:141:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "0x", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:129:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoll(str, end, base, &ll) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:141:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "0x", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:129:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoll(str, end, base, &ll) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:141:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "0x", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:129:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoll(str, end, base, &ll) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:141:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "0x", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:110:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtous(str, end, base, &us) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:130:3: note: in expansion of macro 'check_strtouerr' check_strtouerr(err, str, end, base); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:141:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "0x", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:110:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtous(str, end, base, &us) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:130:3: note: in expansion of macro 'check_strtouerr' check_strtouerr(err, str, end, base); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:141:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "0x", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:110:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtous(str, end, base, &us) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:130:3: note: in expansion of macro 'check_strtouerr' check_strtouerr(err, str, end, base); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:141:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "0x", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:110:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtous(str, end, base, &us) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:130:3: note: in expansion of macro 'check_strtouerr' check_strtouerr(err, str, end, base); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:141:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "0x", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:111:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoui(str, end, base, &ui) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:130:3: note: in expansion of macro 'check_strtouerr' check_strtouerr(err, str, end, base); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:141:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "0x", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:111:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoui(str, end, base, &ui) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:130:3: note: in expansion of macro 'check_strtouerr' check_strtouerr(err, str, end, base); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:141:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "0x", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:111:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoui(str, end, base, &ui) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:130:3: note: in expansion of macro 'check_strtouerr' check_strtouerr(err, str, end, base); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:141:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "0x", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:111:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoui(str, end, base, &ui) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:130:3: note: in expansion of macro 'check_strtouerr' check_strtouerr(err, str, end, base); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:141:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "0x", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:112:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoul(str, end, base, &ul) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:130:3: note: in expansion of macro 'check_strtouerr' check_strtouerr(err, str, end, base); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:141:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "0x", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:112:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoul(str, end, base, &ul) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:130:3: note: in expansion of macro 'check_strtouerr' check_strtouerr(err, str, end, base); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:141:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "0x", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:112:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoul(str, end, base, &ul) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:130:3: note: in expansion of macro 'check_strtouerr' check_strtouerr(err, str, end, base); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:141:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "0x", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:112:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoul(str, end, base, &ul) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:130:3: note: in expansion of macro 'check_strtouerr' check_strtouerr(err, str, end, base); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:141:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "0x", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:113:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoull(str, end, base, &ull) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:130:3: note: in expansion of macro 'check_strtouerr' check_strtouerr(err, str, end, base); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:141:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "0x", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:113:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoull(str, end, base, &ull) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:130:3: note: in expansion of macro 'check_strtouerr' check_strtouerr(err, str, end, base); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:141:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "0x", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:113:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoull(str, end, base, &ull) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:130:3: note: in expansion of macro 'check_strtouerr' check_strtouerr(err, str, end, base); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:141:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "0x", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:113:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoull(str, end, base, &ull) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:130:3: note: in expansion of macro 'check_strtouerr' check_strtouerr(err, str, end, base); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:141:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "0x", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:126:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtos(str, end, base, &s) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:142:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "0x789A", NULL, 10); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:126:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtos(str, end, base, &s) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:142:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "0x789A", NULL, 10); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:126:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtos(str, end, base, &s) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:142:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "0x789A", NULL, 10); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:126:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtos(str, end, base, &s) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:142:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "0x789A", NULL, 10); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:127:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoi(str, end, base, &i) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:142:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "0x789A", NULL, 10); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:127:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoi(str, end, base, &i) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:142:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "0x789A", NULL, 10); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:127:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoi(str, end, base, &i) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:142:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "0x789A", NULL, 10); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:127:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoi(str, end, base, &i) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:142:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "0x789A", NULL, 10); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:128:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtol(str, end, base, &l) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:142:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "0x789A", NULL, 10); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:128:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtol(str, end, base, &l) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:142:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "0x789A", NULL, 10); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:128:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtol(str, end, base, &l) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:142:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "0x789A", NULL, 10); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:128:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtol(str, end, base, &l) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:142:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "0x789A", NULL, 10); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:129:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoll(str, end, base, &ll) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:142:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "0x789A", NULL, 10); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:129:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoll(str, end, base, &ll) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:142:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "0x789A", NULL, 10); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:129:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoll(str, end, base, &ll) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:142:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "0x789A", NULL, 10); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:129:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoll(str, end, base, &ll) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:142:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "0x789A", NULL, 10); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:110:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtous(str, end, base, &us) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:130:3: note: in expansion of macro 'check_strtouerr' check_strtouerr(err, str, end, base); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:142:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "0x789A", NULL, 10); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:110:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtous(str, end, base, &us) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:130:3: note: in expansion of macro 'check_strtouerr' check_strtouerr(err, str, end, base); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:142:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "0x789A", NULL, 10); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:110:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtous(str, end, base, &us) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:130:3: note: in expansion of macro 'check_strtouerr' check_strtouerr(err, str, end, base); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:142:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "0x789A", NULL, 10); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:110:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtous(str, end, base, &us) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:130:3: note: in expansion of macro 'check_strtouerr' check_strtouerr(err, str, end, base); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:142:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "0x789A", NULL, 10); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:111:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoui(str, end, base, &ui) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:130:3: note: in expansion of macro 'check_strtouerr' check_strtouerr(err, str, end, base); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:142:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "0x789A", NULL, 10); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:111:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoui(str, end, base, &ui) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:130:3: note: in expansion of macro 'check_strtouerr' check_strtouerr(err, str, end, base); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:142:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "0x789A", NULL, 10); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:111:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoui(str, end, base, &ui) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:130:3: note: in expansion of macro 'check_strtouerr' check_strtouerr(err, str, end, base); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:142:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "0x789A", NULL, 10); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:111:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoui(str, end, base, &ui) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:130:3: note: in expansion of macro 'check_strtouerr' check_strtouerr(err, str, end, base); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:142:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "0x789A", NULL, 10); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:112:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoul(str, end, base, &ul) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:130:3: note: in expansion of macro 'check_strtouerr' check_strtouerr(err, str, end, base); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:142:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "0x789A", NULL, 10); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:112:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoul(str, end, base, &ul) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:130:3: note: in expansion of macro 'check_strtouerr' check_strtouerr(err, str, end, base); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:142:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "0x789A", NULL, 10); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:112:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoul(str, end, base, &ul) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:130:3: note: in expansion of macro 'check_strtouerr' check_strtouerr(err, str, end, base); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:142:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "0x789A", NULL, 10); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:112:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoul(str, end, base, &ul) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:130:3: note: in expansion of macro 'check_strtouerr' check_strtouerr(err, str, end, base); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:142:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "0x789A", NULL, 10); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:113:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoull(str, end, base, &ull) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:130:3: note: in expansion of macro 'check_strtouerr' check_strtouerr(err, str, end, base); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:142:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "0x789A", NULL, 10); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:113:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoull(str, end, base, &ull) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:130:3: note: in expansion of macro 'check_strtouerr' check_strtouerr(err, str, end, base); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:142:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "0x789A", NULL, 10); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:113:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoull(str, end, base, &ull) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:130:3: note: in expansion of macro 'check_strtouerr' check_strtouerr(err, str, end, base); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:142:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "0x789A", NULL, 10); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:113:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoull(str, end, base, &ull) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:130:3: note: in expansion of macro 'check_strtouerr' check_strtouerr(err, str, end, base); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:142:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "0x789A", NULL, 10); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:126:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtos(str, end, base, &s) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:143:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "0x-1", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:126:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtos(str, end, base, &s) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:143:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "0x-1", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:126:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtos(str, end, base, &s) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:143:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "0x-1", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:126:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtos(str, end, base, &s) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:143:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "0x-1", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:127:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoi(str, end, base, &i) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:143:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "0x-1", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:127:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoi(str, end, base, &i) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:143:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "0x-1", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:127:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoi(str, end, base, &i) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:143:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "0x-1", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:127:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoi(str, end, base, &i) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:143:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "0x-1", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:128:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtol(str, end, base, &l) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:143:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "0x-1", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:128:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtol(str, end, base, &l) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:143:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "0x-1", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:128:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtol(str, end, base, &l) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:143:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "0x-1", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:128:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtol(str, end, base, &l) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:143:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "0x-1", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:129:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoll(str, end, base, &ll) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:143:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "0x-1", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:129:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoll(str, end, base, &ll) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:143:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "0x-1", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:129:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoll(str, end, base, &ll) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:143:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "0x-1", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:129:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoll(str, end, base, &ll) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:143:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "0x-1", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:110:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtous(str, end, base, &us) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:130:3: note: in expansion of macro 'check_strtouerr' check_strtouerr(err, str, end, base); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:143:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "0x-1", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:110:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtous(str, end, base, &us) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:130:3: note: in expansion of macro 'check_strtouerr' check_strtouerr(err, str, end, base); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:143:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "0x-1", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:110:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtous(str, end, base, &us) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:130:3: note: in expansion of macro 'check_strtouerr' check_strtouerr(err, str, end, base); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:143:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "0x-1", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:110:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtous(str, end, base, &us) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:130:3: note: in expansion of macro 'check_strtouerr' check_strtouerr(err, str, end, base); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:143:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "0x-1", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:111:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoui(str, end, base, &ui) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:130:3: note: in expansion of macro 'check_strtouerr' check_strtouerr(err, str, end, base); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:143:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "0x-1", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:111:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoui(str, end, base, &ui) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:130:3: note: in expansion of macro 'check_strtouerr' check_strtouerr(err, str, end, base); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:143:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "0x-1", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:111:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoui(str, end, base, &ui) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:130:3: note: in expansion of macro 'check_strtouerr' check_strtouerr(err, str, end, base); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:143:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "0x-1", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:111:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoui(str, end, base, &ui) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:130:3: note: in expansion of macro 'check_strtouerr' check_strtouerr(err, str, end, base); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:143:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "0x-1", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:112:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoul(str, end, base, &ul) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:130:3: note: in expansion of macro 'check_strtouerr' check_strtouerr(err, str, end, base); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:143:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "0x-1", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:112:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoul(str, end, base, &ul) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:130:3: note: in expansion of macro 'check_strtouerr' check_strtouerr(err, str, end, base); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:143:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "0x-1", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:112:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoul(str, end, base, &ul) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:130:3: note: in expansion of macro 'check_strtouerr' check_strtouerr(err, str, end, base); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:143:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "0x-1", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:112:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoul(str, end, base, &ul) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:130:3: note: in expansion of macro 'check_strtouerr' check_strtouerr(err, str, end, base); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:143:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "0x-1", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:113:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoull(str, end, base, &ull) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:130:3: note: in expansion of macro 'check_strtouerr' check_strtouerr(err, str, end, base); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:143:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "0x-1", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:113:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoull(str, end, base, &ull) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:130:3: note: in expansion of macro 'check_strtouerr' check_strtouerr(err, str, end, base); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:143:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "0x-1", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:113:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoull(str, end, base, &ull) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:130:3: note: in expansion of macro 'check_strtouerr' check_strtouerr(err, str, end, base); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:143:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "0x-1", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:113:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoull(str, end, base, &ull) != 0 && errno == err); \ ^~~~~~~~~~ tests/bfstd.c:130:3: note: in expansion of macro 'check_strtouerr' check_strtouerr(err, str, end, base); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:143:2: note: in expansion of macro 'check_strtoerr' check_strtoerr(EINVAL, "0x-1", NULL, 0); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:157:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed short, SHRT_MIN, SHRT_MAX, "%d", xstrtos, str, base, s, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:167:2: note: in expansion of macro 'check_strtoint' check_strtoint("123", 0, 123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:157:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed short, SHRT_MIN, SHRT_MAX, "%d", xstrtos, str, base, s, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:167:2: note: in expansion of macro 'check_strtoint' check_strtoint("123", 0, 123); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:157:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed short, SHRT_MIN, SHRT_MAX, "%d", xstrtos, str, base, s, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:167:2: note: in expansion of macro 'check_strtoint' check_strtoint("123", 0, 123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:157:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed short, SHRT_MIN, SHRT_MAX, "%d", xstrtos, str, base, s, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:167:2: note: in expansion of macro 'check_strtoint' check_strtoint("123", 0, 123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:53:4: note: in expansion of macro 'bfs_diag' (bfs_diag(__VA_ARGS__)) \ ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:157:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed short, SHRT_MIN, SHRT_MAX, "%d", xstrtos, str, base, s, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:167:2: note: in expansion of macro 'check_strtoint' check_strtoint("123", 0, 123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:54:4: note: in expansion of macro 'bfs_diag' (bfs_diag("Check failed: `%s`", str)) ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:157:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed short, SHRT_MIN, SHRT_MAX, "%d", xstrtos, str, base, s, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:167:2: note: in expansion of macro 'check_strtoint' check_strtoint("123", 0, 123); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:157:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed short, SHRT_MIN, SHRT_MAX, "%d", xstrtos, str, base, s, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:167:2: note: in expansion of macro 'check_strtoint' check_strtoint("123", 0, 123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:157:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed short, SHRT_MIN, SHRT_MAX, "%d", xstrtos, str, base, s, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:167:2: note: in expansion of macro 'check_strtoint' check_strtoint("123", 0, 123); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:157:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed short, SHRT_MIN, SHRT_MAX, "%d", xstrtos, str, base, s, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:167:2: note: in expansion of macro 'check_strtoint' check_strtoint("123", 0, 123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:157:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed short, SHRT_MIN, SHRT_MAX, "%d", xstrtos, str, base, s, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:167:2: note: in expansion of macro 'check_strtoint' check_strtoint("123", 0, 123); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:158:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed int, INT_MIN, INT_MAX, "%d", xstrtoi, str, base, i, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:167:2: note: in expansion of macro 'check_strtoint' check_strtoint("123", 0, 123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:158:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed int, INT_MIN, INT_MAX, "%d", xstrtoi, str, base, i, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:167:2: note: in expansion of macro 'check_strtoint' check_strtoint("123", 0, 123); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:158:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed int, INT_MIN, INT_MAX, "%d", xstrtoi, str, base, i, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:167:2: note: in expansion of macro 'check_strtoint' check_strtoint("123", 0, 123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:158:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed int, INT_MIN, INT_MAX, "%d", xstrtoi, str, base, i, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:167:2: note: in expansion of macro 'check_strtoint' check_strtoint("123", 0, 123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:53:4: note: in expansion of macro 'bfs_diag' (bfs_diag(__VA_ARGS__)) \ ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:158:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed int, INT_MIN, INT_MAX, "%d", xstrtoi, str, base, i, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:167:2: note: in expansion of macro 'check_strtoint' check_strtoint("123", 0, 123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:54:4: note: in expansion of macro 'bfs_diag' (bfs_diag("Check failed: `%s`", str)) ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:158:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed int, INT_MIN, INT_MAX, "%d", xstrtoi, str, base, i, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:167:2: note: in expansion of macro 'check_strtoint' check_strtoint("123", 0, 123); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:158:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed int, INT_MIN, INT_MAX, "%d", xstrtoi, str, base, i, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:167:2: note: in expansion of macro 'check_strtoint' check_strtoint("123", 0, 123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:158:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed int, INT_MIN, INT_MAX, "%d", xstrtoi, str, base, i, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:167:2: note: in expansion of macro 'check_strtoint' check_strtoint("123", 0, 123); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:158:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed int, INT_MIN, INT_MAX, "%d", xstrtoi, str, base, i, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:167:2: note: in expansion of macro 'check_strtoint' check_strtoint("123", 0, 123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:158:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed int, INT_MIN, INT_MAX, "%d", xstrtoi, str, base, i, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:167:2: note: in expansion of macro 'check_strtoint' check_strtoint("123", 0, 123); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:159:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long, LONG_MIN, LONG_MAX, "%ld", xstrtol, str, base, l, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:167:2: note: in expansion of macro 'check_strtoint' check_strtoint("123", 0, 123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:159:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long, LONG_MIN, LONG_MAX, "%ld", xstrtol, str, base, l, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:167:2: note: in expansion of macro 'check_strtoint' check_strtoint("123", 0, 123); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:159:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long, LONG_MIN, LONG_MAX, "%ld", xstrtol, str, base, l, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:167:2: note: in expansion of macro 'check_strtoint' check_strtoint("123", 0, 123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:159:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long, LONG_MIN, LONG_MAX, "%ld", xstrtol, str, base, l, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:167:2: note: in expansion of macro 'check_strtoint' check_strtoint("123", 0, 123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:53:4: note: in expansion of macro 'bfs_diag' (bfs_diag(__VA_ARGS__)) \ ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:159:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long, LONG_MIN, LONG_MAX, "%ld", xstrtol, str, base, l, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:167:2: note: in expansion of macro 'check_strtoint' check_strtoint("123", 0, 123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:54:4: note: in expansion of macro 'bfs_diag' (bfs_diag("Check failed: `%s`", str)) ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:159:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long, LONG_MIN, LONG_MAX, "%ld", xstrtol, str, base, l, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:167:2: note: in expansion of macro 'check_strtoint' check_strtoint("123", 0, 123); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:159:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long, LONG_MIN, LONG_MAX, "%ld", xstrtol, str, base, l, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:167:2: note: in expansion of macro 'check_strtoint' check_strtoint("123", 0, 123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:159:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long, LONG_MIN, LONG_MAX, "%ld", xstrtol, str, base, l, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:167:2: note: in expansion of macro 'check_strtoint' check_strtoint("123", 0, 123); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:159:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long, LONG_MIN, LONG_MAX, "%ld", xstrtol, str, base, l, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:167:2: note: in expansion of macro 'check_strtoint' check_strtoint("123", 0, 123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:159:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long, LONG_MIN, LONG_MAX, "%ld", xstrtol, str, base, l, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:167:2: note: in expansion of macro 'check_strtoint' check_strtoint("123", 0, 123); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:160:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long long, LLONG_MIN, LLONG_MAX, "%lld", xstrtoll, str, base, ll, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:167:2: note: in expansion of macro 'check_strtoint' check_strtoint("123", 0, 123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:160:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long long, LLONG_MIN, LLONG_MAX, "%lld", xstrtoll, str, base, ll, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:167:2: note: in expansion of macro 'check_strtoint' check_strtoint("123", 0, 123); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:160:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long long, LLONG_MIN, LLONG_MAX, "%lld", xstrtoll, str, base, ll, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:167:2: note: in expansion of macro 'check_strtoint' check_strtoint("123", 0, 123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:160:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long long, LLONG_MIN, LLONG_MAX, "%lld", xstrtoll, str, base, ll, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:167:2: note: in expansion of macro 'check_strtoint' check_strtoint("123", 0, 123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:53:4: note: in expansion of macro 'bfs_diag' (bfs_diag(__VA_ARGS__)) \ ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:160:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long long, LLONG_MIN, LLONG_MAX, "%lld", xstrtoll, str, base, ll, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:167:2: note: in expansion of macro 'check_strtoint' check_strtoint("123", 0, 123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:54:4: note: in expansion of macro 'bfs_diag' (bfs_diag("Check failed: `%s`", str)) ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:160:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long long, LLONG_MIN, LLONG_MAX, "%lld", xstrtoll, str, base, ll, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:167:2: note: in expansion of macro 'check_strtoint' check_strtoint("123", 0, 123); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:160:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long long, LLONG_MIN, LLONG_MAX, "%lld", xstrtoll, str, base, ll, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:167:2: note: in expansion of macro 'check_strtoint' check_strtoint("123", 0, 123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:160:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long long, LLONG_MIN, LLONG_MAX, "%lld", xstrtoll, str, base, ll, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:167:2: note: in expansion of macro 'check_strtoint' check_strtoint("123", 0, 123); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:160:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long long, LLONG_MIN, LLONG_MAX, "%lld", xstrtoll, str, base, ll, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:167:2: note: in expansion of macro 'check_strtoint' check_strtoint("123", 0, 123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:160:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long long, LLONG_MIN, LLONG_MAX, "%lld", xstrtoll, str, base, ll, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:167:2: note: in expansion of macro 'check_strtoint' check_strtoint("123", 0, 123); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:161:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned short, 0, USHRT_MAX, "%u", xstrtous, str, base, us, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:167:2: note: in expansion of macro 'check_strtoint' check_strtoint("123", 0, 123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:161:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned short, 0, USHRT_MAX, "%u", xstrtous, str, base, us, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:167:2: note: in expansion of macro 'check_strtoint' check_strtoint("123", 0, 123); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:161:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned short, 0, USHRT_MAX, "%u", xstrtous, str, base, us, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:167:2: note: in expansion of macro 'check_strtoint' check_strtoint("123", 0, 123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:161:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned short, 0, USHRT_MAX, "%u", xstrtous, str, base, us, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:167:2: note: in expansion of macro 'check_strtoint' check_strtoint("123", 0, 123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:53:4: note: in expansion of macro 'bfs_diag' (bfs_diag(__VA_ARGS__)) \ ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:161:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned short, 0, USHRT_MAX, "%u", xstrtous, str, base, us, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:167:2: note: in expansion of macro 'check_strtoint' check_strtoint("123", 0, 123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:54:4: note: in expansion of macro 'bfs_diag' (bfs_diag("Check failed: `%s`", str)) ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:161:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned short, 0, USHRT_MAX, "%u", xstrtous, str, base, us, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:167:2: note: in expansion of macro 'check_strtoint' check_strtoint("123", 0, 123); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:161:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned short, 0, USHRT_MAX, "%u", xstrtous, str, base, us, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:167:2: note: in expansion of macro 'check_strtoint' check_strtoint("123", 0, 123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:161:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned short, 0, USHRT_MAX, "%u", xstrtous, str, base, us, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:167:2: note: in expansion of macro 'check_strtoint' check_strtoint("123", 0, 123); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:161:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned short, 0, USHRT_MAX, "%u", xstrtous, str, base, us, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:167:2: note: in expansion of macro 'check_strtoint' check_strtoint("123", 0, 123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:161:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned short, 0, USHRT_MAX, "%u", xstrtous, str, base, us, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:167:2: note: in expansion of macro 'check_strtoint' check_strtoint("123", 0, 123); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:162:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned int, 0, UINT_MAX, "%u", xstrtoui, str, base, ui, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:167:2: note: in expansion of macro 'check_strtoint' check_strtoint("123", 0, 123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:162:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned int, 0, UINT_MAX, "%u", xstrtoui, str, base, ui, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:167:2: note: in expansion of macro 'check_strtoint' check_strtoint("123", 0, 123); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:162:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned int, 0, UINT_MAX, "%u", xstrtoui, str, base, ui, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:167:2: note: in expansion of macro 'check_strtoint' check_strtoint("123", 0, 123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:162:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned int, 0, UINT_MAX, "%u", xstrtoui, str, base, ui, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:167:2: note: in expansion of macro 'check_strtoint' check_strtoint("123", 0, 123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:53:4: note: in expansion of macro 'bfs_diag' (bfs_diag(__VA_ARGS__)) \ ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:162:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned int, 0, UINT_MAX, "%u", xstrtoui, str, base, ui, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:167:2: note: in expansion of macro 'check_strtoint' check_strtoint("123", 0, 123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:54:4: note: in expansion of macro 'bfs_diag' (bfs_diag("Check failed: `%s`", str)) ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:162:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned int, 0, UINT_MAX, "%u", xstrtoui, str, base, ui, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:167:2: note: in expansion of macro 'check_strtoint' check_strtoint("123", 0, 123); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:162:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned int, 0, UINT_MAX, "%u", xstrtoui, str, base, ui, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:167:2: note: in expansion of macro 'check_strtoint' check_strtoint("123", 0, 123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:162:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned int, 0, UINT_MAX, "%u", xstrtoui, str, base, ui, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:167:2: note: in expansion of macro 'check_strtoint' check_strtoint("123", 0, 123); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:162:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned int, 0, UINT_MAX, "%u", xstrtoui, str, base, ui, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:167:2: note: in expansion of macro 'check_strtoint' check_strtoint("123", 0, 123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:162:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned int, 0, UINT_MAX, "%u", xstrtoui, str, base, ui, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:167:2: note: in expansion of macro 'check_strtoint' check_strtoint("123", 0, 123); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:163:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long, 0, ULONG_MAX, "%lu", xstrtoul, str, base, ul, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:167:2: note: in expansion of macro 'check_strtoint' check_strtoint("123", 0, 123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:163:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long, 0, ULONG_MAX, "%lu", xstrtoul, str, base, ul, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:167:2: note: in expansion of macro 'check_strtoint' check_strtoint("123", 0, 123); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:163:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long, 0, ULONG_MAX, "%lu", xstrtoul, str, base, ul, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:167:2: note: in expansion of macro 'check_strtoint' check_strtoint("123", 0, 123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:163:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long, 0, ULONG_MAX, "%lu", xstrtoul, str, base, ul, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:167:2: note: in expansion of macro 'check_strtoint' check_strtoint("123", 0, 123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:53:4: note: in expansion of macro 'bfs_diag' (bfs_diag(__VA_ARGS__)) \ ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:163:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long, 0, ULONG_MAX, "%lu", xstrtoul, str, base, ul, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:167:2: note: in expansion of macro 'check_strtoint' check_strtoint("123", 0, 123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:54:4: note: in expansion of macro 'bfs_diag' (bfs_diag("Check failed: `%s`", str)) ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:163:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long, 0, ULONG_MAX, "%lu", xstrtoul, str, base, ul, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:167:2: note: in expansion of macro 'check_strtoint' check_strtoint("123", 0, 123); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:163:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long, 0, ULONG_MAX, "%lu", xstrtoul, str, base, ul, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:167:2: note: in expansion of macro 'check_strtoint' check_strtoint("123", 0, 123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:163:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long, 0, ULONG_MAX, "%lu", xstrtoul, str, base, ul, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:167:2: note: in expansion of macro 'check_strtoint' check_strtoint("123", 0, 123); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:163:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long, 0, ULONG_MAX, "%lu", xstrtoul, str, base, ul, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:167:2: note: in expansion of macro 'check_strtoint' check_strtoint("123", 0, 123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:163:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long, 0, ULONG_MAX, "%lu", xstrtoul, str, base, ul, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:167:2: note: in expansion of macro 'check_strtoint' check_strtoint("123", 0, 123); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:164:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long long, 0, ULLONG_MAX, "%llu", xstrtoull, str, base, ull, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:167:2: note: in expansion of macro 'check_strtoint' check_strtoint("123", 0, 123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:164:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long long, 0, ULLONG_MAX, "%llu", xstrtoull, str, base, ull, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:167:2: note: in expansion of macro 'check_strtoint' check_strtoint("123", 0, 123); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:164:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long long, 0, ULLONG_MAX, "%llu", xstrtoull, str, base, ull, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:167:2: note: in expansion of macro 'check_strtoint' check_strtoint("123", 0, 123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:164:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long long, 0, ULLONG_MAX, "%llu", xstrtoull, str, base, ull, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:167:2: note: in expansion of macro 'check_strtoint' check_strtoint("123", 0, 123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:53:4: note: in expansion of macro 'bfs_diag' (bfs_diag(__VA_ARGS__)) \ ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:164:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long long, 0, ULLONG_MAX, "%llu", xstrtoull, str, base, ull, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:167:2: note: in expansion of macro 'check_strtoint' check_strtoint("123", 0, 123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:54:4: note: in expansion of macro 'bfs_diag' (bfs_diag("Check failed: `%s`", str)) ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:164:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long long, 0, ULLONG_MAX, "%llu", xstrtoull, str, base, ull, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:167:2: note: in expansion of macro 'check_strtoint' check_strtoint("123", 0, 123); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:164:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long long, 0, ULLONG_MAX, "%llu", xstrtoull, str, base, ull, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:167:2: note: in expansion of macro 'check_strtoint' check_strtoint("123", 0, 123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:164:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long long, 0, ULLONG_MAX, "%llu", xstrtoull, str, base, ull, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:167:2: note: in expansion of macro 'check_strtoint' check_strtoint("123", 0, 123); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:164:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long long, 0, ULLONG_MAX, "%llu", xstrtoull, str, base, ull, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:167:2: note: in expansion of macro 'check_strtoint' check_strtoint("123", 0, 123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:164:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long long, 0, ULLONG_MAX, "%llu", xstrtoull, str, base, ull, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:167:2: note: in expansion of macro 'check_strtoint' check_strtoint("123", 0, 123); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:157:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed short, SHRT_MIN, SHRT_MAX, "%d", xstrtos, str, base, s, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:168:2: note: in expansion of macro 'check_strtoint' check_strtoint("+123", 0, 123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:157:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed short, SHRT_MIN, SHRT_MAX, "%d", xstrtos, str, base, s, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:168:2: note: in expansion of macro 'check_strtoint' check_strtoint("+123", 0, 123); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:157:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed short, SHRT_MIN, SHRT_MAX, "%d", xstrtos, str, base, s, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:168:2: note: in expansion of macro 'check_strtoint' check_strtoint("+123", 0, 123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:157:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed short, SHRT_MIN, SHRT_MAX, "%d", xstrtos, str, base, s, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:168:2: note: in expansion of macro 'check_strtoint' check_strtoint("+123", 0, 123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:53:4: note: in expansion of macro 'bfs_diag' (bfs_diag(__VA_ARGS__)) \ ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:157:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed short, SHRT_MIN, SHRT_MAX, "%d", xstrtos, str, base, s, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:168:2: note: in expansion of macro 'check_strtoint' check_strtoint("+123", 0, 123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:54:4: note: in expansion of macro 'bfs_diag' (bfs_diag("Check failed: `%s`", str)) ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:157:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed short, SHRT_MIN, SHRT_MAX, "%d", xstrtos, str, base, s, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:168:2: note: in expansion of macro 'check_strtoint' check_strtoint("+123", 0, 123); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:157:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed short, SHRT_MIN, SHRT_MAX, "%d", xstrtos, str, base, s, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:168:2: note: in expansion of macro 'check_strtoint' check_strtoint("+123", 0, 123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:157:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed short, SHRT_MIN, SHRT_MAX, "%d", xstrtos, str, base, s, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:168:2: note: in expansion of macro 'check_strtoint' check_strtoint("+123", 0, 123); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:157:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed short, SHRT_MIN, SHRT_MAX, "%d", xstrtos, str, base, s, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:168:2: note: in expansion of macro 'check_strtoint' check_strtoint("+123", 0, 123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:157:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed short, SHRT_MIN, SHRT_MAX, "%d", xstrtos, str, base, s, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:168:2: note: in expansion of macro 'check_strtoint' check_strtoint("+123", 0, 123); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:158:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed int, INT_MIN, INT_MAX, "%d", xstrtoi, str, base, i, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:168:2: note: in expansion of macro 'check_strtoint' check_strtoint("+123", 0, 123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:158:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed int, INT_MIN, INT_MAX, "%d", xstrtoi, str, base, i, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:168:2: note: in expansion of macro 'check_strtoint' check_strtoint("+123", 0, 123); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:158:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed int, INT_MIN, INT_MAX, "%d", xstrtoi, str, base, i, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:168:2: note: in expansion of macro 'check_strtoint' check_strtoint("+123", 0, 123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:158:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed int, INT_MIN, INT_MAX, "%d", xstrtoi, str, base, i, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:168:2: note: in expansion of macro 'check_strtoint' check_strtoint("+123", 0, 123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:53:4: note: in expansion of macro 'bfs_diag' (bfs_diag(__VA_ARGS__)) \ ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:158:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed int, INT_MIN, INT_MAX, "%d", xstrtoi, str, base, i, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:168:2: note: in expansion of macro 'check_strtoint' check_strtoint("+123", 0, 123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:54:4: note: in expansion of macro 'bfs_diag' (bfs_diag("Check failed: `%s`", str)) ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:158:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed int, INT_MIN, INT_MAX, "%d", xstrtoi, str, base, i, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:168:2: note: in expansion of macro 'check_strtoint' check_strtoint("+123", 0, 123); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:158:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed int, INT_MIN, INT_MAX, "%d", xstrtoi, str, base, i, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:168:2: note: in expansion of macro 'check_strtoint' check_strtoint("+123", 0, 123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:158:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed int, INT_MIN, INT_MAX, "%d", xstrtoi, str, base, i, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:168:2: note: in expansion of macro 'check_strtoint' check_strtoint("+123", 0, 123); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:158:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed int, INT_MIN, INT_MAX, "%d", xstrtoi, str, base, i, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:168:2: note: in expansion of macro 'check_strtoint' check_strtoint("+123", 0, 123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:158:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed int, INT_MIN, INT_MAX, "%d", xstrtoi, str, base, i, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:168:2: note: in expansion of macro 'check_strtoint' check_strtoint("+123", 0, 123); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:159:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long, LONG_MIN, LONG_MAX, "%ld", xstrtol, str, base, l, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:168:2: note: in expansion of macro 'check_strtoint' check_strtoint("+123", 0, 123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:159:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long, LONG_MIN, LONG_MAX, "%ld", xstrtol, str, base, l, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:168:2: note: in expansion of macro 'check_strtoint' check_strtoint("+123", 0, 123); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:159:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long, LONG_MIN, LONG_MAX, "%ld", xstrtol, str, base, l, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:168:2: note: in expansion of macro 'check_strtoint' check_strtoint("+123", 0, 123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:159:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long, LONG_MIN, LONG_MAX, "%ld", xstrtol, str, base, l, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:168:2: note: in expansion of macro 'check_strtoint' check_strtoint("+123", 0, 123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:53:4: note: in expansion of macro 'bfs_diag' (bfs_diag(__VA_ARGS__)) \ ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:159:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long, LONG_MIN, LONG_MAX, "%ld", xstrtol, str, base, l, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:168:2: note: in expansion of macro 'check_strtoint' check_strtoint("+123", 0, 123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:54:4: note: in expansion of macro 'bfs_diag' (bfs_diag("Check failed: `%s`", str)) ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:159:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long, LONG_MIN, LONG_MAX, "%ld", xstrtol, str, base, l, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:168:2: note: in expansion of macro 'check_strtoint' check_strtoint("+123", 0, 123); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:159:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long, LONG_MIN, LONG_MAX, "%ld", xstrtol, str, base, l, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:168:2: note: in expansion of macro 'check_strtoint' check_strtoint("+123", 0, 123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:159:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long, LONG_MIN, LONG_MAX, "%ld", xstrtol, str, base, l, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:168:2: note: in expansion of macro 'check_strtoint' check_strtoint("+123", 0, 123); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:159:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long, LONG_MIN, LONG_MAX, "%ld", xstrtol, str, base, l, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:168:2: note: in expansion of macro 'check_strtoint' check_strtoint("+123", 0, 123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:159:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long, LONG_MIN, LONG_MAX, "%ld", xstrtol, str, base, l, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:168:2: note: in expansion of macro 'check_strtoint' check_strtoint("+123", 0, 123); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:160:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long long, LLONG_MIN, LLONG_MAX, "%lld", xstrtoll, str, base, ll, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:168:2: note: in expansion of macro 'check_strtoint' check_strtoint("+123", 0, 123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:160:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long long, LLONG_MIN, LLONG_MAX, "%lld", xstrtoll, str, base, ll, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:168:2: note: in expansion of macro 'check_strtoint' check_strtoint("+123", 0, 123); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:160:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long long, LLONG_MIN, LLONG_MAX, "%lld", xstrtoll, str, base, ll, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:168:2: note: in expansion of macro 'check_strtoint' check_strtoint("+123", 0, 123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:160:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long long, LLONG_MIN, LLONG_MAX, "%lld", xstrtoll, str, base, ll, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:168:2: note: in expansion of macro 'check_strtoint' check_strtoint("+123", 0, 123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:53:4: note: in expansion of macro 'bfs_diag' (bfs_diag(__VA_ARGS__)) \ ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:160:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long long, LLONG_MIN, LLONG_MAX, "%lld", xstrtoll, str, base, ll, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:168:2: note: in expansion of macro 'check_strtoint' check_strtoint("+123", 0, 123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:54:4: note: in expansion of macro 'bfs_diag' (bfs_diag("Check failed: `%s`", str)) ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:160:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long long, LLONG_MIN, LLONG_MAX, "%lld", xstrtoll, str, base, ll, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:168:2: note: in expansion of macro 'check_strtoint' check_strtoint("+123", 0, 123); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:160:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long long, LLONG_MIN, LLONG_MAX, "%lld", xstrtoll, str, base, ll, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:168:2: note: in expansion of macro 'check_strtoint' check_strtoint("+123", 0, 123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:160:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long long, LLONG_MIN, LLONG_MAX, "%lld", xstrtoll, str, base, ll, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:168:2: note: in expansion of macro 'check_strtoint' check_strtoint("+123", 0, 123); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:160:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long long, LLONG_MIN, LLONG_MAX, "%lld", xstrtoll, str, base, ll, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:168:2: note: in expansion of macro 'check_strtoint' check_strtoint("+123", 0, 123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:160:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long long, LLONG_MIN, LLONG_MAX, "%lld", xstrtoll, str, base, ll, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:168:2: note: in expansion of macro 'check_strtoint' check_strtoint("+123", 0, 123); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:161:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned short, 0, USHRT_MAX, "%u", xstrtous, str, base, us, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:168:2: note: in expansion of macro 'check_strtoint' check_strtoint("+123", 0, 123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:161:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned short, 0, USHRT_MAX, "%u", xstrtous, str, base, us, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:168:2: note: in expansion of macro 'check_strtoint' check_strtoint("+123", 0, 123); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:161:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned short, 0, USHRT_MAX, "%u", xstrtous, str, base, us, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:168:2: note: in expansion of macro 'check_strtoint' check_strtoint("+123", 0, 123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:161:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned short, 0, USHRT_MAX, "%u", xstrtous, str, base, us, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:168:2: note: in expansion of macro 'check_strtoint' check_strtoint("+123", 0, 123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:53:4: note: in expansion of macro 'bfs_diag' (bfs_diag(__VA_ARGS__)) \ ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:161:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned short, 0, USHRT_MAX, "%u", xstrtous, str, base, us, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:168:2: note: in expansion of macro 'check_strtoint' check_strtoint("+123", 0, 123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:54:4: note: in expansion of macro 'bfs_diag' (bfs_diag("Check failed: `%s`", str)) ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:161:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned short, 0, USHRT_MAX, "%u", xstrtous, str, base, us, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:168:2: note: in expansion of macro 'check_strtoint' check_strtoint("+123", 0, 123); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:161:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned short, 0, USHRT_MAX, "%u", xstrtous, str, base, us, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:168:2: note: in expansion of macro 'check_strtoint' check_strtoint("+123", 0, 123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:161:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned short, 0, USHRT_MAX, "%u", xstrtous, str, base, us, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:168:2: note: in expansion of macro 'check_strtoint' check_strtoint("+123", 0, 123); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:161:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned short, 0, USHRT_MAX, "%u", xstrtous, str, base, us, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:168:2: note: in expansion of macro 'check_strtoint' check_strtoint("+123", 0, 123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:161:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned short, 0, USHRT_MAX, "%u", xstrtous, str, base, us, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:168:2: note: in expansion of macro 'check_strtoint' check_strtoint("+123", 0, 123); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:162:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned int, 0, UINT_MAX, "%u", xstrtoui, str, base, ui, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:168:2: note: in expansion of macro 'check_strtoint' check_strtoint("+123", 0, 123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:162:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned int, 0, UINT_MAX, "%u", xstrtoui, str, base, ui, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:168:2: note: in expansion of macro 'check_strtoint' check_strtoint("+123", 0, 123); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:162:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned int, 0, UINT_MAX, "%u", xstrtoui, str, base, ui, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:168:2: note: in expansion of macro 'check_strtoint' check_strtoint("+123", 0, 123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:162:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned int, 0, UINT_MAX, "%u", xstrtoui, str, base, ui, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:168:2: note: in expansion of macro 'check_strtoint' check_strtoint("+123", 0, 123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:53:4: note: in expansion of macro 'bfs_diag' (bfs_diag(__VA_ARGS__)) \ ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:162:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned int, 0, UINT_MAX, "%u", xstrtoui, str, base, ui, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:168:2: note: in expansion of macro 'check_strtoint' check_strtoint("+123", 0, 123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:54:4: note: in expansion of macro 'bfs_diag' (bfs_diag("Check failed: `%s`", str)) ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:162:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned int, 0, UINT_MAX, "%u", xstrtoui, str, base, ui, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:168:2: note: in expansion of macro 'check_strtoint' check_strtoint("+123", 0, 123); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:162:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned int, 0, UINT_MAX, "%u", xstrtoui, str, base, ui, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:168:2: note: in expansion of macro 'check_strtoint' check_strtoint("+123", 0, 123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:162:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned int, 0, UINT_MAX, "%u", xstrtoui, str, base, ui, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:168:2: note: in expansion of macro 'check_strtoint' check_strtoint("+123", 0, 123); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:162:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned int, 0, UINT_MAX, "%u", xstrtoui, str, base, ui, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:168:2: note: in expansion of macro 'check_strtoint' check_strtoint("+123", 0, 123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:162:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned int, 0, UINT_MAX, "%u", xstrtoui, str, base, ui, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:168:2: note: in expansion of macro 'check_strtoint' check_strtoint("+123", 0, 123); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:163:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long, 0, ULONG_MAX, "%lu", xstrtoul, str, base, ul, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:168:2: note: in expansion of macro 'check_strtoint' check_strtoint("+123", 0, 123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:163:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long, 0, ULONG_MAX, "%lu", xstrtoul, str, base, ul, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:168:2: note: in expansion of macro 'check_strtoint' check_strtoint("+123", 0, 123); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:163:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long, 0, ULONG_MAX, "%lu", xstrtoul, str, base, ul, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:168:2: note: in expansion of macro 'check_strtoint' check_strtoint("+123", 0, 123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:163:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long, 0, ULONG_MAX, "%lu", xstrtoul, str, base, ul, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:168:2: note: in expansion of macro 'check_strtoint' check_strtoint("+123", 0, 123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:53:4: note: in expansion of macro 'bfs_diag' (bfs_diag(__VA_ARGS__)) \ ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:163:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long, 0, ULONG_MAX, "%lu", xstrtoul, str, base, ul, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:168:2: note: in expansion of macro 'check_strtoint' check_strtoint("+123", 0, 123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:54:4: note: in expansion of macro 'bfs_diag' (bfs_diag("Check failed: `%s`", str)) ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:163:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long, 0, ULONG_MAX, "%lu", xstrtoul, str, base, ul, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:168:2: note: in expansion of macro 'check_strtoint' check_strtoint("+123", 0, 123); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:163:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long, 0, ULONG_MAX, "%lu", xstrtoul, str, base, ul, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:168:2: note: in expansion of macro 'check_strtoint' check_strtoint("+123", 0, 123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:163:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long, 0, ULONG_MAX, "%lu", xstrtoul, str, base, ul, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:168:2: note: in expansion of macro 'check_strtoint' check_strtoint("+123", 0, 123); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:163:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long, 0, ULONG_MAX, "%lu", xstrtoul, str, base, ul, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:168:2: note: in expansion of macro 'check_strtoint' check_strtoint("+123", 0, 123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:163:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long, 0, ULONG_MAX, "%lu", xstrtoul, str, base, ul, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:168:2: note: in expansion of macro 'check_strtoint' check_strtoint("+123", 0, 123); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:164:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long long, 0, ULLONG_MAX, "%llu", xstrtoull, str, base, ull, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:168:2: note: in expansion of macro 'check_strtoint' check_strtoint("+123", 0, 123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:164:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long long, 0, ULLONG_MAX, "%llu", xstrtoull, str, base, ull, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:168:2: note: in expansion of macro 'check_strtoint' check_strtoint("+123", 0, 123); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:164:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long long, 0, ULLONG_MAX, "%llu", xstrtoull, str, base, ull, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:168:2: note: in expansion of macro 'check_strtoint' check_strtoint("+123", 0, 123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:164:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long long, 0, ULLONG_MAX, "%llu", xstrtoull, str, base, ull, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:168:2: note: in expansion of macro 'check_strtoint' check_strtoint("+123", 0, 123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:53:4: note: in expansion of macro 'bfs_diag' (bfs_diag(__VA_ARGS__)) \ ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:164:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long long, 0, ULLONG_MAX, "%llu", xstrtoull, str, base, ull, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:168:2: note: in expansion of macro 'check_strtoint' check_strtoint("+123", 0, 123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:54:4: note: in expansion of macro 'bfs_diag' (bfs_diag("Check failed: `%s`", str)) ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:164:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long long, 0, ULLONG_MAX, "%llu", xstrtoull, str, base, ull, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:168:2: note: in expansion of macro 'check_strtoint' check_strtoint("+123", 0, 123); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:164:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long long, 0, ULLONG_MAX, "%llu", xstrtoull, str, base, ull, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:168:2: note: in expansion of macro 'check_strtoint' check_strtoint("+123", 0, 123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:164:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long long, 0, ULLONG_MAX, "%llu", xstrtoull, str, base, ull, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:168:2: note: in expansion of macro 'check_strtoint' check_strtoint("+123", 0, 123); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:164:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long long, 0, ULLONG_MAX, "%llu", xstrtoull, str, base, ull, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:168:2: note: in expansion of macro 'check_strtoint' check_strtoint("+123", 0, 123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:164:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long long, 0, ULLONG_MAX, "%llu", xstrtoull, str, base, ull, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:168:2: note: in expansion of macro 'check_strtoint' check_strtoint("+123", 0, 123); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:157:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed short, SHRT_MIN, SHRT_MAX, "%d", xstrtos, str, base, s, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:169:2: note: in expansion of macro 'check_strtoint' check_strtoint("-123", 0, -123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:157:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed short, SHRT_MIN, SHRT_MAX, "%d", xstrtos, str, base, s, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:169:2: note: in expansion of macro 'check_strtoint' check_strtoint("-123", 0, -123); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:157:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed short, SHRT_MIN, SHRT_MAX, "%d", xstrtos, str, base, s, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:169:2: note: in expansion of macro 'check_strtoint' check_strtoint("-123", 0, -123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:157:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed short, SHRT_MIN, SHRT_MAX, "%d", xstrtos, str, base, s, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:169:2: note: in expansion of macro 'check_strtoint' check_strtoint("-123", 0, -123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:53:4: note: in expansion of macro 'bfs_diag' (bfs_diag(__VA_ARGS__)) \ ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:157:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed short, SHRT_MIN, SHRT_MAX, "%d", xstrtos, str, base, s, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:169:2: note: in expansion of macro 'check_strtoint' check_strtoint("-123", 0, -123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:54:4: note: in expansion of macro 'bfs_diag' (bfs_diag("Check failed: `%s`", str)) ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:157:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed short, SHRT_MIN, SHRT_MAX, "%d", xstrtos, str, base, s, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:169:2: note: in expansion of macro 'check_strtoint' check_strtoint("-123", 0, -123); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:157:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed short, SHRT_MIN, SHRT_MAX, "%d", xstrtos, str, base, s, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:169:2: note: in expansion of macro 'check_strtoint' check_strtoint("-123", 0, -123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:157:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed short, SHRT_MIN, SHRT_MAX, "%d", xstrtos, str, base, s, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:169:2: note: in expansion of macro 'check_strtoint' check_strtoint("-123", 0, -123); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:157:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed short, SHRT_MIN, SHRT_MAX, "%d", xstrtos, str, base, s, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:169:2: note: in expansion of macro 'check_strtoint' check_strtoint("-123", 0, -123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:157:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed short, SHRT_MIN, SHRT_MAX, "%d", xstrtos, str, base, s, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:169:2: note: in expansion of macro 'check_strtoint' check_strtoint("-123", 0, -123); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:158:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed int, INT_MIN, INT_MAX, "%d", xstrtoi, str, base, i, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:169:2: note: in expansion of macro 'check_strtoint' check_strtoint("-123", 0, -123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:158:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed int, INT_MIN, INT_MAX, "%d", xstrtoi, str, base, i, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:169:2: note: in expansion of macro 'check_strtoint' check_strtoint("-123", 0, -123); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:158:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed int, INT_MIN, INT_MAX, "%d", xstrtoi, str, base, i, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:169:2: note: in expansion of macro 'check_strtoint' check_strtoint("-123", 0, -123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:158:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed int, INT_MIN, INT_MAX, "%d", xstrtoi, str, base, i, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:169:2: note: in expansion of macro 'check_strtoint' check_strtoint("-123", 0, -123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:53:4: note: in expansion of macro 'bfs_diag' (bfs_diag(__VA_ARGS__)) \ ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:158:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed int, INT_MIN, INT_MAX, "%d", xstrtoi, str, base, i, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:169:2: note: in expansion of macro 'check_strtoint' check_strtoint("-123", 0, -123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:54:4: note: in expansion of macro 'bfs_diag' (bfs_diag("Check failed: `%s`", str)) ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:158:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed int, INT_MIN, INT_MAX, "%d", xstrtoi, str, base, i, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:169:2: note: in expansion of macro 'check_strtoint' check_strtoint("-123", 0, -123); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:158:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed int, INT_MIN, INT_MAX, "%d", xstrtoi, str, base, i, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:169:2: note: in expansion of macro 'check_strtoint' check_strtoint("-123", 0, -123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:158:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed int, INT_MIN, INT_MAX, "%d", xstrtoi, str, base, i, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:169:2: note: in expansion of macro 'check_strtoint' check_strtoint("-123", 0, -123); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:158:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed int, INT_MIN, INT_MAX, "%d", xstrtoi, str, base, i, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:169:2: note: in expansion of macro 'check_strtoint' check_strtoint("-123", 0, -123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:158:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed int, INT_MIN, INT_MAX, "%d", xstrtoi, str, base, i, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:169:2: note: in expansion of macro 'check_strtoint' check_strtoint("-123", 0, -123); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:159:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long, LONG_MIN, LONG_MAX, "%ld", xstrtol, str, base, l, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:169:2: note: in expansion of macro 'check_strtoint' check_strtoint("-123", 0, -123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:159:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long, LONG_MIN, LONG_MAX, "%ld", xstrtol, str, base, l, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:169:2: note: in expansion of macro 'check_strtoint' check_strtoint("-123", 0, -123); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:159:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long, LONG_MIN, LONG_MAX, "%ld", xstrtol, str, base, l, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:169:2: note: in expansion of macro 'check_strtoint' check_strtoint("-123", 0, -123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:159:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long, LONG_MIN, LONG_MAX, "%ld", xstrtol, str, base, l, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:169:2: note: in expansion of macro 'check_strtoint' check_strtoint("-123", 0, -123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:53:4: note: in expansion of macro 'bfs_diag' (bfs_diag(__VA_ARGS__)) \ ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:159:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long, LONG_MIN, LONG_MAX, "%ld", xstrtol, str, base, l, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:169:2: note: in expansion of macro 'check_strtoint' check_strtoint("-123", 0, -123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:54:4: note: in expansion of macro 'bfs_diag' (bfs_diag("Check failed: `%s`", str)) ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:159:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long, LONG_MIN, LONG_MAX, "%ld", xstrtol, str, base, l, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:169:2: note: in expansion of macro 'check_strtoint' check_strtoint("-123", 0, -123); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:159:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long, LONG_MIN, LONG_MAX, "%ld", xstrtol, str, base, l, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:169:2: note: in expansion of macro 'check_strtoint' check_strtoint("-123", 0, -123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:159:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long, LONG_MIN, LONG_MAX, "%ld", xstrtol, str, base, l, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:169:2: note: in expansion of macro 'check_strtoint' check_strtoint("-123", 0, -123); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:159:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long, LONG_MIN, LONG_MAX, "%ld", xstrtol, str, base, l, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:169:2: note: in expansion of macro 'check_strtoint' check_strtoint("-123", 0, -123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:159:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long, LONG_MIN, LONG_MAX, "%ld", xstrtol, str, base, l, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:169:2: note: in expansion of macro 'check_strtoint' check_strtoint("-123", 0, -123); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:160:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long long, LLONG_MIN, LLONG_MAX, "%lld", xstrtoll, str, base, ll, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:169:2: note: in expansion of macro 'check_strtoint' check_strtoint("-123", 0, -123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:160:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long long, LLONG_MIN, LLONG_MAX, "%lld", xstrtoll, str, base, ll, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:169:2: note: in expansion of macro 'check_strtoint' check_strtoint("-123", 0, -123); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:160:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long long, LLONG_MIN, LLONG_MAX, "%lld", xstrtoll, str, base, ll, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:169:2: note: in expansion of macro 'check_strtoint' check_strtoint("-123", 0, -123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:160:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long long, LLONG_MIN, LLONG_MAX, "%lld", xstrtoll, str, base, ll, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:169:2: note: in expansion of macro 'check_strtoint' check_strtoint("-123", 0, -123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:53:4: note: in expansion of macro 'bfs_diag' (bfs_diag(__VA_ARGS__)) \ ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:160:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long long, LLONG_MIN, LLONG_MAX, "%lld", xstrtoll, str, base, ll, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:169:2: note: in expansion of macro 'check_strtoint' check_strtoint("-123", 0, -123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:54:4: note: in expansion of macro 'bfs_diag' (bfs_diag("Check failed: `%s`", str)) ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:160:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long long, LLONG_MIN, LLONG_MAX, "%lld", xstrtoll, str, base, ll, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:169:2: note: in expansion of macro 'check_strtoint' check_strtoint("-123", 0, -123); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:160:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long long, LLONG_MIN, LLONG_MAX, "%lld", xstrtoll, str, base, ll, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:169:2: note: in expansion of macro 'check_strtoint' check_strtoint("-123", 0, -123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:160:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long long, LLONG_MIN, LLONG_MAX, "%lld", xstrtoll, str, base, ll, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:169:2: note: in expansion of macro 'check_strtoint' check_strtoint("-123", 0, -123); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:160:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long long, LLONG_MIN, LLONG_MAX, "%lld", xstrtoll, str, base, ll, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:169:2: note: in expansion of macro 'check_strtoint' check_strtoint("-123", 0, -123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:160:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long long, LLONG_MIN, LLONG_MAX, "%lld", xstrtoll, str, base, ll, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:169:2: note: in expansion of macro 'check_strtoint' check_strtoint("-123", 0, -123); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:161:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned short, 0, USHRT_MAX, "%u", xstrtous, str, base, us, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:169:2: note: in expansion of macro 'check_strtoint' check_strtoint("-123", 0, -123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:161:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned short, 0, USHRT_MAX, "%u", xstrtous, str, base, us, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:169:2: note: in expansion of macro 'check_strtoint' check_strtoint("-123", 0, -123); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:161:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned short, 0, USHRT_MAX, "%u", xstrtous, str, base, us, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:169:2: note: in expansion of macro 'check_strtoint' check_strtoint("-123", 0, -123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:161:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned short, 0, USHRT_MAX, "%u", xstrtous, str, base, us, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:169:2: note: in expansion of macro 'check_strtoint' check_strtoint("-123", 0, -123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:53:4: note: in expansion of macro 'bfs_diag' (bfs_diag(__VA_ARGS__)) \ ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:161:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned short, 0, USHRT_MAX, "%u", xstrtous, str, base, us, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:169:2: note: in expansion of macro 'check_strtoint' check_strtoint("-123", 0, -123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:54:4: note: in expansion of macro 'bfs_diag' (bfs_diag("Check failed: `%s`", str)) ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:161:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned short, 0, USHRT_MAX, "%u", xstrtous, str, base, us, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:169:2: note: in expansion of macro 'check_strtoint' check_strtoint("-123", 0, -123); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:161:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned short, 0, USHRT_MAX, "%u", xstrtous, str, base, us, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:169:2: note: in expansion of macro 'check_strtoint' check_strtoint("-123", 0, -123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:161:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned short, 0, USHRT_MAX, "%u", xstrtous, str, base, us, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:169:2: note: in expansion of macro 'check_strtoint' check_strtoint("-123", 0, -123); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:161:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned short, 0, USHRT_MAX, "%u", xstrtous, str, base, us, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:169:2: note: in expansion of macro 'check_strtoint' check_strtoint("-123", 0, -123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:161:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned short, 0, USHRT_MAX, "%u", xstrtous, str, base, us, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:169:2: note: in expansion of macro 'check_strtoint' check_strtoint("-123", 0, -123); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:162:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned int, 0, UINT_MAX, "%u", xstrtoui, str, base, ui, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:169:2: note: in expansion of macro 'check_strtoint' check_strtoint("-123", 0, -123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:162:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned int, 0, UINT_MAX, "%u", xstrtoui, str, base, ui, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:169:2: note: in expansion of macro 'check_strtoint' check_strtoint("-123", 0, -123); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:162:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned int, 0, UINT_MAX, "%u", xstrtoui, str, base, ui, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:169:2: note: in expansion of macro 'check_strtoint' check_strtoint("-123", 0, -123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:162:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned int, 0, UINT_MAX, "%u", xstrtoui, str, base, ui, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:169:2: note: in expansion of macro 'check_strtoint' check_strtoint("-123", 0, -123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:53:4: note: in expansion of macro 'bfs_diag' (bfs_diag(__VA_ARGS__)) \ ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:162:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned int, 0, UINT_MAX, "%u", xstrtoui, str, base, ui, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:169:2: note: in expansion of macro 'check_strtoint' check_strtoint("-123", 0, -123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:54:4: note: in expansion of macro 'bfs_diag' (bfs_diag("Check failed: `%s`", str)) ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:162:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned int, 0, UINT_MAX, "%u", xstrtoui, str, base, ui, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:169:2: note: in expansion of macro 'check_strtoint' check_strtoint("-123", 0, -123); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:162:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned int, 0, UINT_MAX, "%u", xstrtoui, str, base, ui, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:169:2: note: in expansion of macro 'check_strtoint' check_strtoint("-123", 0, -123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:162:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned int, 0, UINT_MAX, "%u", xstrtoui, str, base, ui, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:169:2: note: in expansion of macro 'check_strtoint' check_strtoint("-123", 0, -123); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:162:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned int, 0, UINT_MAX, "%u", xstrtoui, str, base, ui, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:169:2: note: in expansion of macro 'check_strtoint' check_strtoint("-123", 0, -123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:162:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned int, 0, UINT_MAX, "%u", xstrtoui, str, base, ui, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:169:2: note: in expansion of macro 'check_strtoint' check_strtoint("-123", 0, -123); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:163:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long, 0, ULONG_MAX, "%lu", xstrtoul, str, base, ul, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:169:2: note: in expansion of macro 'check_strtoint' check_strtoint("-123", 0, -123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:163:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long, 0, ULONG_MAX, "%lu", xstrtoul, str, base, ul, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:169:2: note: in expansion of macro 'check_strtoint' check_strtoint("-123", 0, -123); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:163:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long, 0, ULONG_MAX, "%lu", xstrtoul, str, base, ul, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:169:2: note: in expansion of macro 'check_strtoint' check_strtoint("-123", 0, -123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:163:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long, 0, ULONG_MAX, "%lu", xstrtoul, str, base, ul, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:169:2: note: in expansion of macro 'check_strtoint' check_strtoint("-123", 0, -123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:53:4: note: in expansion of macro 'bfs_diag' (bfs_diag(__VA_ARGS__)) \ ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:163:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long, 0, ULONG_MAX, "%lu", xstrtoul, str, base, ul, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:169:2: note: in expansion of macro 'check_strtoint' check_strtoint("-123", 0, -123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:54:4: note: in expansion of macro 'bfs_diag' (bfs_diag("Check failed: `%s`", str)) ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:163:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long, 0, ULONG_MAX, "%lu", xstrtoul, str, base, ul, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:169:2: note: in expansion of macro 'check_strtoint' check_strtoint("-123", 0, -123); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:163:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long, 0, ULONG_MAX, "%lu", xstrtoul, str, base, ul, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:169:2: note: in expansion of macro 'check_strtoint' check_strtoint("-123", 0, -123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:163:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long, 0, ULONG_MAX, "%lu", xstrtoul, str, base, ul, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:169:2: note: in expansion of macro 'check_strtoint' check_strtoint("-123", 0, -123); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:163:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long, 0, ULONG_MAX, "%lu", xstrtoul, str, base, ul, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:169:2: note: in expansion of macro 'check_strtoint' check_strtoint("-123", 0, -123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:163:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long, 0, ULONG_MAX, "%lu", xstrtoul, str, base, ul, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:169:2: note: in expansion of macro 'check_strtoint' check_strtoint("-123", 0, -123); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:164:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long long, 0, ULLONG_MAX, "%llu", xstrtoull, str, base, ull, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:169:2: note: in expansion of macro 'check_strtoint' check_strtoint("-123", 0, -123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:164:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long long, 0, ULLONG_MAX, "%llu", xstrtoull, str, base, ull, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:169:2: note: in expansion of macro 'check_strtoint' check_strtoint("-123", 0, -123); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:164:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long long, 0, ULLONG_MAX, "%llu", xstrtoull, str, base, ull, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:169:2: note: in expansion of macro 'check_strtoint' check_strtoint("-123", 0, -123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:164:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long long, 0, ULLONG_MAX, "%llu", xstrtoull, str, base, ull, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:169:2: note: in expansion of macro 'check_strtoint' check_strtoint("-123", 0, -123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:53:4: note: in expansion of macro 'bfs_diag' (bfs_diag(__VA_ARGS__)) \ ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:164:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long long, 0, ULLONG_MAX, "%llu", xstrtoull, str, base, ull, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:169:2: note: in expansion of macro 'check_strtoint' check_strtoint("-123", 0, -123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:54:4: note: in expansion of macro 'bfs_diag' (bfs_diag("Check failed: `%s`", str)) ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:164:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long long, 0, ULLONG_MAX, "%llu", xstrtoull, str, base, ull, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:169:2: note: in expansion of macro 'check_strtoint' check_strtoint("-123", 0, -123); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:164:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long long, 0, ULLONG_MAX, "%llu", xstrtoull, str, base, ull, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:169:2: note: in expansion of macro 'check_strtoint' check_strtoint("-123", 0, -123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:164:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long long, 0, ULLONG_MAX, "%llu", xstrtoull, str, base, ull, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:169:2: note: in expansion of macro 'check_strtoint' check_strtoint("-123", 0, -123); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:164:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long long, 0, ULLONG_MAX, "%llu", xstrtoull, str, base, ull, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:169:2: note: in expansion of macro 'check_strtoint' check_strtoint("-123", 0, -123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:164:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long long, 0, ULLONG_MAX, "%llu", xstrtoull, str, base, ull, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:169:2: note: in expansion of macro 'check_strtoint' check_strtoint("-123", 0, -123); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:157:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed short, SHRT_MIN, SHRT_MAX, "%d", xstrtos, str, base, s, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:171:2: note: in expansion of macro 'check_strtoint' check_strtoint("0123", 0, 0123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:157:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed short, SHRT_MIN, SHRT_MAX, "%d", xstrtos, str, base, s, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:171:2: note: in expansion of macro 'check_strtoint' check_strtoint("0123", 0, 0123); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:157:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed short, SHRT_MIN, SHRT_MAX, "%d", xstrtos, str, base, s, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:171:2: note: in expansion of macro 'check_strtoint' check_strtoint("0123", 0, 0123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:157:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed short, SHRT_MIN, SHRT_MAX, "%d", xstrtos, str, base, s, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:171:2: note: in expansion of macro 'check_strtoint' check_strtoint("0123", 0, 0123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:53:4: note: in expansion of macro 'bfs_diag' (bfs_diag(__VA_ARGS__)) \ ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:157:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed short, SHRT_MIN, SHRT_MAX, "%d", xstrtos, str, base, s, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:171:2: note: in expansion of macro 'check_strtoint' check_strtoint("0123", 0, 0123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:54:4: note: in expansion of macro 'bfs_diag' (bfs_diag("Check failed: `%s`", str)) ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:157:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed short, SHRT_MIN, SHRT_MAX, "%d", xstrtos, str, base, s, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:171:2: note: in expansion of macro 'check_strtoint' check_strtoint("0123", 0, 0123); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:157:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed short, SHRT_MIN, SHRT_MAX, "%d", xstrtos, str, base, s, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:171:2: note: in expansion of macro 'check_strtoint' check_strtoint("0123", 0, 0123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:157:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed short, SHRT_MIN, SHRT_MAX, "%d", xstrtos, str, base, s, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:171:2: note: in expansion of macro 'check_strtoint' check_strtoint("0123", 0, 0123); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:157:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed short, SHRT_MIN, SHRT_MAX, "%d", xstrtos, str, base, s, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:171:2: note: in expansion of macro 'check_strtoint' check_strtoint("0123", 0, 0123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:157:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed short, SHRT_MIN, SHRT_MAX, "%d", xstrtos, str, base, s, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:171:2: note: in expansion of macro 'check_strtoint' check_strtoint("0123", 0, 0123); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:158:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed int, INT_MIN, INT_MAX, "%d", xstrtoi, str, base, i, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:171:2: note: in expansion of macro 'check_strtoint' check_strtoint("0123", 0, 0123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:158:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed int, INT_MIN, INT_MAX, "%d", xstrtoi, str, base, i, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:171:2: note: in expansion of macro 'check_strtoint' check_strtoint("0123", 0, 0123); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:158:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed int, INT_MIN, INT_MAX, "%d", xstrtoi, str, base, i, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:171:2: note: in expansion of macro 'check_strtoint' check_strtoint("0123", 0, 0123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:158:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed int, INT_MIN, INT_MAX, "%d", xstrtoi, str, base, i, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:171:2: note: in expansion of macro 'check_strtoint' check_strtoint("0123", 0, 0123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:53:4: note: in expansion of macro 'bfs_diag' (bfs_diag(__VA_ARGS__)) \ ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:158:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed int, INT_MIN, INT_MAX, "%d", xstrtoi, str, base, i, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:171:2: note: in expansion of macro 'check_strtoint' check_strtoint("0123", 0, 0123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:54:4: note: in expansion of macro 'bfs_diag' (bfs_diag("Check failed: `%s`", str)) ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:158:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed int, INT_MIN, INT_MAX, "%d", xstrtoi, str, base, i, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:171:2: note: in expansion of macro 'check_strtoint' check_strtoint("0123", 0, 0123); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:158:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed int, INT_MIN, INT_MAX, "%d", xstrtoi, str, base, i, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:171:2: note: in expansion of macro 'check_strtoint' check_strtoint("0123", 0, 0123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:158:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed int, INT_MIN, INT_MAX, "%d", xstrtoi, str, base, i, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:171:2: note: in expansion of macro 'check_strtoint' check_strtoint("0123", 0, 0123); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:158:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed int, INT_MIN, INT_MAX, "%d", xstrtoi, str, base, i, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:171:2: note: in expansion of macro 'check_strtoint' check_strtoint("0123", 0, 0123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:158:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed int, INT_MIN, INT_MAX, "%d", xstrtoi, str, base, i, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:171:2: note: in expansion of macro 'check_strtoint' check_strtoint("0123", 0, 0123); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:159:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long, LONG_MIN, LONG_MAX, "%ld", xstrtol, str, base, l, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:171:2: note: in expansion of macro 'check_strtoint' check_strtoint("0123", 0, 0123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:159:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long, LONG_MIN, LONG_MAX, "%ld", xstrtol, str, base, l, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:171:2: note: in expansion of macro 'check_strtoint' check_strtoint("0123", 0, 0123); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:159:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long, LONG_MIN, LONG_MAX, "%ld", xstrtol, str, base, l, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:171:2: note: in expansion of macro 'check_strtoint' check_strtoint("0123", 0, 0123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:159:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long, LONG_MIN, LONG_MAX, "%ld", xstrtol, str, base, l, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:171:2: note: in expansion of macro 'check_strtoint' check_strtoint("0123", 0, 0123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:53:4: note: in expansion of macro 'bfs_diag' (bfs_diag(__VA_ARGS__)) \ ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:159:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long, LONG_MIN, LONG_MAX, "%ld", xstrtol, str, base, l, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:171:2: note: in expansion of macro 'check_strtoint' check_strtoint("0123", 0, 0123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:54:4: note: in expansion of macro 'bfs_diag' (bfs_diag("Check failed: `%s`", str)) ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:159:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long, LONG_MIN, LONG_MAX, "%ld", xstrtol, str, base, l, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:171:2: note: in expansion of macro 'check_strtoint' check_strtoint("0123", 0, 0123); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:159:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long, LONG_MIN, LONG_MAX, "%ld", xstrtol, str, base, l, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:171:2: note: in expansion of macro 'check_strtoint' check_strtoint("0123", 0, 0123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:159:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long, LONG_MIN, LONG_MAX, "%ld", xstrtol, str, base, l, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:171:2: note: in expansion of macro 'check_strtoint' check_strtoint("0123", 0, 0123); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:159:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long, LONG_MIN, LONG_MAX, "%ld", xstrtol, str, base, l, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:171:2: note: in expansion of macro 'check_strtoint' check_strtoint("0123", 0, 0123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:159:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long, LONG_MIN, LONG_MAX, "%ld", xstrtol, str, base, l, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:171:2: note: in expansion of macro 'check_strtoint' check_strtoint("0123", 0, 0123); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:160:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long long, LLONG_MIN, LLONG_MAX, "%lld", xstrtoll, str, base, ll, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:171:2: note: in expansion of macro 'check_strtoint' check_strtoint("0123", 0, 0123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:160:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long long, LLONG_MIN, LLONG_MAX, "%lld", xstrtoll, str, base, ll, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:171:2: note: in expansion of macro 'check_strtoint' check_strtoint("0123", 0, 0123); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:160:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long long, LLONG_MIN, LLONG_MAX, "%lld", xstrtoll, str, base, ll, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:171:2: note: in expansion of macro 'check_strtoint' check_strtoint("0123", 0, 0123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:160:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long long, LLONG_MIN, LLONG_MAX, "%lld", xstrtoll, str, base, ll, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:171:2: note: in expansion of macro 'check_strtoint' check_strtoint("0123", 0, 0123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:53:4: note: in expansion of macro 'bfs_diag' (bfs_diag(__VA_ARGS__)) \ ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:160:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long long, LLONG_MIN, LLONG_MAX, "%lld", xstrtoll, str, base, ll, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:171:2: note: in expansion of macro 'check_strtoint' check_strtoint("0123", 0, 0123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:54:4: note: in expansion of macro 'bfs_diag' (bfs_diag("Check failed: `%s`", str)) ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:160:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long long, LLONG_MIN, LLONG_MAX, "%lld", xstrtoll, str, base, ll, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:171:2: note: in expansion of macro 'check_strtoint' check_strtoint("0123", 0, 0123); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:160:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long long, LLONG_MIN, LLONG_MAX, "%lld", xstrtoll, str, base, ll, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:171:2: note: in expansion of macro 'check_strtoint' check_strtoint("0123", 0, 0123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:160:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long long, LLONG_MIN, LLONG_MAX, "%lld", xstrtoll, str, base, ll, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:171:2: note: in expansion of macro 'check_strtoint' check_strtoint("0123", 0, 0123); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:160:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long long, LLONG_MIN, LLONG_MAX, "%lld", xstrtoll, str, base, ll, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:171:2: note: in expansion of macro 'check_strtoint' check_strtoint("0123", 0, 0123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:160:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long long, LLONG_MIN, LLONG_MAX, "%lld", xstrtoll, str, base, ll, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:171:2: note: in expansion of macro 'check_strtoint' check_strtoint("0123", 0, 0123); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:161:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned short, 0, USHRT_MAX, "%u", xstrtous, str, base, us, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:171:2: note: in expansion of macro 'check_strtoint' check_strtoint("0123", 0, 0123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:161:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned short, 0, USHRT_MAX, "%u", xstrtous, str, base, us, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:171:2: note: in expansion of macro 'check_strtoint' check_strtoint("0123", 0, 0123); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:161:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned short, 0, USHRT_MAX, "%u", xstrtous, str, base, us, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:171:2: note: in expansion of macro 'check_strtoint' check_strtoint("0123", 0, 0123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:161:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned short, 0, USHRT_MAX, "%u", xstrtous, str, base, us, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:171:2: note: in expansion of macro 'check_strtoint' check_strtoint("0123", 0, 0123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:53:4: note: in expansion of macro 'bfs_diag' (bfs_diag(__VA_ARGS__)) \ ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:161:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned short, 0, USHRT_MAX, "%u", xstrtous, str, base, us, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:171:2: note: in expansion of macro 'check_strtoint' check_strtoint("0123", 0, 0123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:54:4: note: in expansion of macro 'bfs_diag' (bfs_diag("Check failed: `%s`", str)) ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:161:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned short, 0, USHRT_MAX, "%u", xstrtous, str, base, us, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:171:2: note: in expansion of macro 'check_strtoint' check_strtoint("0123", 0, 0123); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:161:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned short, 0, USHRT_MAX, "%u", xstrtous, str, base, us, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:171:2: note: in expansion of macro 'check_strtoint' check_strtoint("0123", 0, 0123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:161:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned short, 0, USHRT_MAX, "%u", xstrtous, str, base, us, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:171:2: note: in expansion of macro 'check_strtoint' check_strtoint("0123", 0, 0123); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:161:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned short, 0, USHRT_MAX, "%u", xstrtous, str, base, us, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:171:2: note: in expansion of macro 'check_strtoint' check_strtoint("0123", 0, 0123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:161:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned short, 0, USHRT_MAX, "%u", xstrtous, str, base, us, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:171:2: note: in expansion of macro 'check_strtoint' check_strtoint("0123", 0, 0123); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:162:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned int, 0, UINT_MAX, "%u", xstrtoui, str, base, ui, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:171:2: note: in expansion of macro 'check_strtoint' check_strtoint("0123", 0, 0123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:162:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned int, 0, UINT_MAX, "%u", xstrtoui, str, base, ui, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:171:2: note: in expansion of macro 'check_strtoint' check_strtoint("0123", 0, 0123); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:162:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned int, 0, UINT_MAX, "%u", xstrtoui, str, base, ui, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:171:2: note: in expansion of macro 'check_strtoint' check_strtoint("0123", 0, 0123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:162:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned int, 0, UINT_MAX, "%u", xstrtoui, str, base, ui, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:171:2: note: in expansion of macro 'check_strtoint' check_strtoint("0123", 0, 0123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:53:4: note: in expansion of macro 'bfs_diag' (bfs_diag(__VA_ARGS__)) \ ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:162:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned int, 0, UINT_MAX, "%u", xstrtoui, str, base, ui, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:171:2: note: in expansion of macro 'check_strtoint' check_strtoint("0123", 0, 0123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:54:4: note: in expansion of macro 'bfs_diag' (bfs_diag("Check failed: `%s`", str)) ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:162:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned int, 0, UINT_MAX, "%u", xstrtoui, str, base, ui, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:171:2: note: in expansion of macro 'check_strtoint' check_strtoint("0123", 0, 0123); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:162:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned int, 0, UINT_MAX, "%u", xstrtoui, str, base, ui, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:171:2: note: in expansion of macro 'check_strtoint' check_strtoint("0123", 0, 0123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:162:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned int, 0, UINT_MAX, "%u", xstrtoui, str, base, ui, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:171:2: note: in expansion of macro 'check_strtoint' check_strtoint("0123", 0, 0123); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:162:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned int, 0, UINT_MAX, "%u", xstrtoui, str, base, ui, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:171:2: note: in expansion of macro 'check_strtoint' check_strtoint("0123", 0, 0123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:162:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned int, 0, UINT_MAX, "%u", xstrtoui, str, base, ui, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:171:2: note: in expansion of macro 'check_strtoint' check_strtoint("0123", 0, 0123); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:163:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long, 0, ULONG_MAX, "%lu", xstrtoul, str, base, ul, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:171:2: note: in expansion of macro 'check_strtoint' check_strtoint("0123", 0, 0123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:163:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long, 0, ULONG_MAX, "%lu", xstrtoul, str, base, ul, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:171:2: note: in expansion of macro 'check_strtoint' check_strtoint("0123", 0, 0123); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:163:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long, 0, ULONG_MAX, "%lu", xstrtoul, str, base, ul, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:171:2: note: in expansion of macro 'check_strtoint' check_strtoint("0123", 0, 0123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:163:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long, 0, ULONG_MAX, "%lu", xstrtoul, str, base, ul, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:171:2: note: in expansion of macro 'check_strtoint' check_strtoint("0123", 0, 0123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:53:4: note: in expansion of macro 'bfs_diag' (bfs_diag(__VA_ARGS__)) \ ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:163:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long, 0, ULONG_MAX, "%lu", xstrtoul, str, base, ul, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:171:2: note: in expansion of macro 'check_strtoint' check_strtoint("0123", 0, 0123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:54:4: note: in expansion of macro 'bfs_diag' (bfs_diag("Check failed: `%s`", str)) ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:163:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long, 0, ULONG_MAX, "%lu", xstrtoul, str, base, ul, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:171:2: note: in expansion of macro 'check_strtoint' check_strtoint("0123", 0, 0123); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:163:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long, 0, ULONG_MAX, "%lu", xstrtoul, str, base, ul, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:171:2: note: in expansion of macro 'check_strtoint' check_strtoint("0123", 0, 0123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:163:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long, 0, ULONG_MAX, "%lu", xstrtoul, str, base, ul, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:171:2: note: in expansion of macro 'check_strtoint' check_strtoint("0123", 0, 0123); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:163:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long, 0, ULONG_MAX, "%lu", xstrtoul, str, base, ul, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:171:2: note: in expansion of macro 'check_strtoint' check_strtoint("0123", 0, 0123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:163:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long, 0, ULONG_MAX, "%lu", xstrtoul, str, base, ul, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:171:2: note: in expansion of macro 'check_strtoint' check_strtoint("0123", 0, 0123); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:164:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long long, 0, ULLONG_MAX, "%llu", xstrtoull, str, base, ull, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:171:2: note: in expansion of macro 'check_strtoint' check_strtoint("0123", 0, 0123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:164:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long long, 0, ULLONG_MAX, "%llu", xstrtoull, str, base, ull, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:171:2: note: in expansion of macro 'check_strtoint' check_strtoint("0123", 0, 0123); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:164:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long long, 0, ULLONG_MAX, "%llu", xstrtoull, str, base, ull, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:171:2: note: in expansion of macro 'check_strtoint' check_strtoint("0123", 0, 0123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:164:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long long, 0, ULLONG_MAX, "%llu", xstrtoull, str, base, ull, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:171:2: note: in expansion of macro 'check_strtoint' check_strtoint("0123", 0, 0123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:53:4: note: in expansion of macro 'bfs_diag' (bfs_diag(__VA_ARGS__)) \ ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:164:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long long, 0, ULLONG_MAX, "%llu", xstrtoull, str, base, ull, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:171:2: note: in expansion of macro 'check_strtoint' check_strtoint("0123", 0, 0123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:54:4: note: in expansion of macro 'bfs_diag' (bfs_diag("Check failed: `%s`", str)) ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:164:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long long, 0, ULLONG_MAX, "%llu", xstrtoull, str, base, ull, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:171:2: note: in expansion of macro 'check_strtoint' check_strtoint("0123", 0, 0123); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:164:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long long, 0, ULLONG_MAX, "%llu", xstrtoull, str, base, ull, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:171:2: note: in expansion of macro 'check_strtoint' check_strtoint("0123", 0, 0123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:164:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long long, 0, ULLONG_MAX, "%llu", xstrtoull, str, base, ull, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:171:2: note: in expansion of macro 'check_strtoint' check_strtoint("0123", 0, 0123); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:164:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long long, 0, ULLONG_MAX, "%llu", xstrtoull, str, base, ull, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:171:2: note: in expansion of macro 'check_strtoint' check_strtoint("0123", 0, 0123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:164:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long long, 0, ULLONG_MAX, "%llu", xstrtoull, str, base, ull, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:171:2: note: in expansion of macro 'check_strtoint' check_strtoint("0123", 0, 0123); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:157:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed short, SHRT_MIN, SHRT_MAX, "%d", xstrtos, str, base, s, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:172:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x789A", 0, 0x789A); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:157:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed short, SHRT_MIN, SHRT_MAX, "%d", xstrtos, str, base, s, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:172:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x789A", 0, 0x789A); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:157:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed short, SHRT_MIN, SHRT_MAX, "%d", xstrtos, str, base, s, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:172:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x789A", 0, 0x789A); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:157:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed short, SHRT_MIN, SHRT_MAX, "%d", xstrtos, str, base, s, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:172:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x789A", 0, 0x789A); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:53:4: note: in expansion of macro 'bfs_diag' (bfs_diag(__VA_ARGS__)) \ ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:157:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed short, SHRT_MIN, SHRT_MAX, "%d", xstrtos, str, base, s, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:172:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x789A", 0, 0x789A); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:54:4: note: in expansion of macro 'bfs_diag' (bfs_diag("Check failed: `%s`", str)) ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:157:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed short, SHRT_MIN, SHRT_MAX, "%d", xstrtos, str, base, s, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:172:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x789A", 0, 0x789A); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:157:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed short, SHRT_MIN, SHRT_MAX, "%d", xstrtos, str, base, s, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:172:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x789A", 0, 0x789A); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:157:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed short, SHRT_MIN, SHRT_MAX, "%d", xstrtos, str, base, s, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:172:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x789A", 0, 0x789A); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:157:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed short, SHRT_MIN, SHRT_MAX, "%d", xstrtos, str, base, s, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:172:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x789A", 0, 0x789A); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:157:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed short, SHRT_MIN, SHRT_MAX, "%d", xstrtos, str, base, s, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:172:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x789A", 0, 0x789A); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:158:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed int, INT_MIN, INT_MAX, "%d", xstrtoi, str, base, i, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:172:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x789A", 0, 0x789A); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:158:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed int, INT_MIN, INT_MAX, "%d", xstrtoi, str, base, i, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:172:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x789A", 0, 0x789A); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:158:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed int, INT_MIN, INT_MAX, "%d", xstrtoi, str, base, i, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:172:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x789A", 0, 0x789A); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:158:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed int, INT_MIN, INT_MAX, "%d", xstrtoi, str, base, i, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:172:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x789A", 0, 0x789A); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:53:4: note: in expansion of macro 'bfs_diag' (bfs_diag(__VA_ARGS__)) \ ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:158:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed int, INT_MIN, INT_MAX, "%d", xstrtoi, str, base, i, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:172:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x789A", 0, 0x789A); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:54:4: note: in expansion of macro 'bfs_diag' (bfs_diag("Check failed: `%s`", str)) ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:158:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed int, INT_MIN, INT_MAX, "%d", xstrtoi, str, base, i, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:172:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x789A", 0, 0x789A); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:158:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed int, INT_MIN, INT_MAX, "%d", xstrtoi, str, base, i, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:172:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x789A", 0, 0x789A); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:158:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed int, INT_MIN, INT_MAX, "%d", xstrtoi, str, base, i, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:172:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x789A", 0, 0x789A); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:158:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed int, INT_MIN, INT_MAX, "%d", xstrtoi, str, base, i, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:172:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x789A", 0, 0x789A); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:158:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed int, INT_MIN, INT_MAX, "%d", xstrtoi, str, base, i, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:172:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x789A", 0, 0x789A); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:159:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long, LONG_MIN, LONG_MAX, "%ld", xstrtol, str, base, l, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:172:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x789A", 0, 0x789A); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:159:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long, LONG_MIN, LONG_MAX, "%ld", xstrtol, str, base, l, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:172:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x789A", 0, 0x789A); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:159:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long, LONG_MIN, LONG_MAX, "%ld", xstrtol, str, base, l, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:172:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x789A", 0, 0x789A); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:159:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long, LONG_MIN, LONG_MAX, "%ld", xstrtol, str, base, l, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:172:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x789A", 0, 0x789A); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:53:4: note: in expansion of macro 'bfs_diag' (bfs_diag(__VA_ARGS__)) \ ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:159:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long, LONG_MIN, LONG_MAX, "%ld", xstrtol, str, base, l, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:172:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x789A", 0, 0x789A); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:54:4: note: in expansion of macro 'bfs_diag' (bfs_diag("Check failed: `%s`", str)) ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:159:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long, LONG_MIN, LONG_MAX, "%ld", xstrtol, str, base, l, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:172:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x789A", 0, 0x789A); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:159:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long, LONG_MIN, LONG_MAX, "%ld", xstrtol, str, base, l, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:172:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x789A", 0, 0x789A); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:159:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long, LONG_MIN, LONG_MAX, "%ld", xstrtol, str, base, l, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:172:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x789A", 0, 0x789A); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:159:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long, LONG_MIN, LONG_MAX, "%ld", xstrtol, str, base, l, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:172:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x789A", 0, 0x789A); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:159:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long, LONG_MIN, LONG_MAX, "%ld", xstrtol, str, base, l, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:172:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x789A", 0, 0x789A); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:160:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long long, LLONG_MIN, LLONG_MAX, "%lld", xstrtoll, str, base, ll, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:172:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x789A", 0, 0x789A); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:160:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long long, LLONG_MIN, LLONG_MAX, "%lld", xstrtoll, str, base, ll, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:172:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x789A", 0, 0x789A); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:160:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long long, LLONG_MIN, LLONG_MAX, "%lld", xstrtoll, str, base, ll, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:172:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x789A", 0, 0x789A); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:160:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long long, LLONG_MIN, LLONG_MAX, "%lld", xstrtoll, str, base, ll, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:172:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x789A", 0, 0x789A); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:53:4: note: in expansion of macro 'bfs_diag' (bfs_diag(__VA_ARGS__)) \ ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:160:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long long, LLONG_MIN, LLONG_MAX, "%lld", xstrtoll, str, base, ll, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:172:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x789A", 0, 0x789A); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:54:4: note: in expansion of macro 'bfs_diag' (bfs_diag("Check failed: `%s`", str)) ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:160:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long long, LLONG_MIN, LLONG_MAX, "%lld", xstrtoll, str, base, ll, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:172:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x789A", 0, 0x789A); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:160:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long long, LLONG_MIN, LLONG_MAX, "%lld", xstrtoll, str, base, ll, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:172:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x789A", 0, 0x789A); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:160:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long long, LLONG_MIN, LLONG_MAX, "%lld", xstrtoll, str, base, ll, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:172:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x789A", 0, 0x789A); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:160:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long long, LLONG_MIN, LLONG_MAX, "%lld", xstrtoll, str, base, ll, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:172:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x789A", 0, 0x789A); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:160:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long long, LLONG_MIN, LLONG_MAX, "%lld", xstrtoll, str, base, ll, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:172:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x789A", 0, 0x789A); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:161:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned short, 0, USHRT_MAX, "%u", xstrtous, str, base, us, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:172:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x789A", 0, 0x789A); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:161:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned short, 0, USHRT_MAX, "%u", xstrtous, str, base, us, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:172:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x789A", 0, 0x789A); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:161:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned short, 0, USHRT_MAX, "%u", xstrtous, str, base, us, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:172:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x789A", 0, 0x789A); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:161:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned short, 0, USHRT_MAX, "%u", xstrtous, str, base, us, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:172:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x789A", 0, 0x789A); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:53:4: note: in expansion of macro 'bfs_diag' (bfs_diag(__VA_ARGS__)) \ ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:161:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned short, 0, USHRT_MAX, "%u", xstrtous, str, base, us, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:172:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x789A", 0, 0x789A); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:54:4: note: in expansion of macro 'bfs_diag' (bfs_diag("Check failed: `%s`", str)) ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:161:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned short, 0, USHRT_MAX, "%u", xstrtous, str, base, us, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:172:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x789A", 0, 0x789A); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:161:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned short, 0, USHRT_MAX, "%u", xstrtous, str, base, us, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:172:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x789A", 0, 0x789A); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:161:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned short, 0, USHRT_MAX, "%u", xstrtous, str, base, us, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:172:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x789A", 0, 0x789A); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:161:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned short, 0, USHRT_MAX, "%u", xstrtous, str, base, us, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:172:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x789A", 0, 0x789A); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:161:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned short, 0, USHRT_MAX, "%u", xstrtous, str, base, us, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:172:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x789A", 0, 0x789A); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:162:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned int, 0, UINT_MAX, "%u", xstrtoui, str, base, ui, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:172:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x789A", 0, 0x789A); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:162:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned int, 0, UINT_MAX, "%u", xstrtoui, str, base, ui, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:172:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x789A", 0, 0x789A); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:162:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned int, 0, UINT_MAX, "%u", xstrtoui, str, base, ui, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:172:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x789A", 0, 0x789A); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:162:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned int, 0, UINT_MAX, "%u", xstrtoui, str, base, ui, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:172:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x789A", 0, 0x789A); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:53:4: note: in expansion of macro 'bfs_diag' (bfs_diag(__VA_ARGS__)) \ ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:162:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned int, 0, UINT_MAX, "%u", xstrtoui, str, base, ui, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:172:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x789A", 0, 0x789A); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:54:4: note: in expansion of macro 'bfs_diag' (bfs_diag("Check failed: `%s`", str)) ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:162:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned int, 0, UINT_MAX, "%u", xstrtoui, str, base, ui, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:172:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x789A", 0, 0x789A); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:162:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned int, 0, UINT_MAX, "%u", xstrtoui, str, base, ui, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:172:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x789A", 0, 0x789A); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:162:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned int, 0, UINT_MAX, "%u", xstrtoui, str, base, ui, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:172:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x789A", 0, 0x789A); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:162:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned int, 0, UINT_MAX, "%u", xstrtoui, str, base, ui, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:172:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x789A", 0, 0x789A); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:162:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned int, 0, UINT_MAX, "%u", xstrtoui, str, base, ui, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:172:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x789A", 0, 0x789A); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:163:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long, 0, ULONG_MAX, "%lu", xstrtoul, str, base, ul, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:172:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x789A", 0, 0x789A); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:163:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long, 0, ULONG_MAX, "%lu", xstrtoul, str, base, ul, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:172:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x789A", 0, 0x789A); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:163:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long, 0, ULONG_MAX, "%lu", xstrtoul, str, base, ul, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:172:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x789A", 0, 0x789A); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:163:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long, 0, ULONG_MAX, "%lu", xstrtoul, str, base, ul, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:172:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x789A", 0, 0x789A); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:53:4: note: in expansion of macro 'bfs_diag' (bfs_diag(__VA_ARGS__)) \ ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:163:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long, 0, ULONG_MAX, "%lu", xstrtoul, str, base, ul, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:172:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x789A", 0, 0x789A); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:54:4: note: in expansion of macro 'bfs_diag' (bfs_diag("Check failed: `%s`", str)) ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:163:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long, 0, ULONG_MAX, "%lu", xstrtoul, str, base, ul, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:172:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x789A", 0, 0x789A); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:163:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long, 0, ULONG_MAX, "%lu", xstrtoul, str, base, ul, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:172:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x789A", 0, 0x789A); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:163:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long, 0, ULONG_MAX, "%lu", xstrtoul, str, base, ul, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:172:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x789A", 0, 0x789A); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:163:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long, 0, ULONG_MAX, "%lu", xstrtoul, str, base, ul, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:172:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x789A", 0, 0x789A); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:163:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long, 0, ULONG_MAX, "%lu", xstrtoul, str, base, ul, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:172:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x789A", 0, 0x789A); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:164:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long long, 0, ULLONG_MAX, "%llu", xstrtoull, str, base, ull, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:172:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x789A", 0, 0x789A); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:164:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long long, 0, ULLONG_MAX, "%llu", xstrtoull, str, base, ull, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:172:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x789A", 0, 0x789A); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:164:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long long, 0, ULLONG_MAX, "%llu", xstrtoull, str, base, ull, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:172:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x789A", 0, 0x789A); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:164:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long long, 0, ULLONG_MAX, "%llu", xstrtoull, str, base, ull, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:172:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x789A", 0, 0x789A); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:53:4: note: in expansion of macro 'bfs_diag' (bfs_diag(__VA_ARGS__)) \ ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:164:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long long, 0, ULLONG_MAX, "%llu", xstrtoull, str, base, ull, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:172:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x789A", 0, 0x789A); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:54:4: note: in expansion of macro 'bfs_diag' (bfs_diag("Check failed: `%s`", str)) ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:164:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long long, 0, ULLONG_MAX, "%llu", xstrtoull, str, base, ull, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:172:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x789A", 0, 0x789A); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:164:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long long, 0, ULLONG_MAX, "%llu", xstrtoull, str, base, ull, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:172:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x789A", 0, 0x789A); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:164:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long long, 0, ULLONG_MAX, "%llu", xstrtoull, str, base, ull, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:172:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x789A", 0, 0x789A); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:164:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long long, 0, ULLONG_MAX, "%llu", xstrtoull, str, base, ull, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:172:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x789A", 0, 0x789A); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:164:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long long, 0, ULLONG_MAX, "%llu", xstrtoull, str, base, ull, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:172:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x789A", 0, 0x789A); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:157:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed short, SHRT_MIN, SHRT_MAX, "%d", xstrtos, str, base, s, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:174:2: note: in expansion of macro 'check_strtoint' check_strtoint("0123", 10, 123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:157:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed short, SHRT_MIN, SHRT_MAX, "%d", xstrtos, str, base, s, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:174:2: note: in expansion of macro 'check_strtoint' check_strtoint("0123", 10, 123); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:157:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed short, SHRT_MIN, SHRT_MAX, "%d", xstrtos, str, base, s, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:174:2: note: in expansion of macro 'check_strtoint' check_strtoint("0123", 10, 123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:157:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed short, SHRT_MIN, SHRT_MAX, "%d", xstrtos, str, base, s, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:174:2: note: in expansion of macro 'check_strtoint' check_strtoint("0123", 10, 123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:53:4: note: in expansion of macro 'bfs_diag' (bfs_diag(__VA_ARGS__)) \ ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:157:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed short, SHRT_MIN, SHRT_MAX, "%d", xstrtos, str, base, s, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:174:2: note: in expansion of macro 'check_strtoint' check_strtoint("0123", 10, 123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:54:4: note: in expansion of macro 'bfs_diag' (bfs_diag("Check failed: `%s`", str)) ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:157:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed short, SHRT_MIN, SHRT_MAX, "%d", xstrtos, str, base, s, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:174:2: note: in expansion of macro 'check_strtoint' check_strtoint("0123", 10, 123); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:157:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed short, SHRT_MIN, SHRT_MAX, "%d", xstrtos, str, base, s, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:174:2: note: in expansion of macro 'check_strtoint' check_strtoint("0123", 10, 123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:157:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed short, SHRT_MIN, SHRT_MAX, "%d", xstrtos, str, base, s, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:174:2: note: in expansion of macro 'check_strtoint' check_strtoint("0123", 10, 123); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:157:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed short, SHRT_MIN, SHRT_MAX, "%d", xstrtos, str, base, s, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:174:2: note: in expansion of macro 'check_strtoint' check_strtoint("0123", 10, 123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:157:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed short, SHRT_MIN, SHRT_MAX, "%d", xstrtos, str, base, s, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:174:2: note: in expansion of macro 'check_strtoint' check_strtoint("0123", 10, 123); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:158:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed int, INT_MIN, INT_MAX, "%d", xstrtoi, str, base, i, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:174:2: note: in expansion of macro 'check_strtoint' check_strtoint("0123", 10, 123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:158:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed int, INT_MIN, INT_MAX, "%d", xstrtoi, str, base, i, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:174:2: note: in expansion of macro 'check_strtoint' check_strtoint("0123", 10, 123); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:158:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed int, INT_MIN, INT_MAX, "%d", xstrtoi, str, base, i, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:174:2: note: in expansion of macro 'check_strtoint' check_strtoint("0123", 10, 123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:158:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed int, INT_MIN, INT_MAX, "%d", xstrtoi, str, base, i, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:174:2: note: in expansion of macro 'check_strtoint' check_strtoint("0123", 10, 123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:53:4: note: in expansion of macro 'bfs_diag' (bfs_diag(__VA_ARGS__)) \ ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:158:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed int, INT_MIN, INT_MAX, "%d", xstrtoi, str, base, i, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:174:2: note: in expansion of macro 'check_strtoint' check_strtoint("0123", 10, 123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:54:4: note: in expansion of macro 'bfs_diag' (bfs_diag("Check failed: `%s`", str)) ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:158:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed int, INT_MIN, INT_MAX, "%d", xstrtoi, str, base, i, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:174:2: note: in expansion of macro 'check_strtoint' check_strtoint("0123", 10, 123); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:158:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed int, INT_MIN, INT_MAX, "%d", xstrtoi, str, base, i, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:174:2: note: in expansion of macro 'check_strtoint' check_strtoint("0123", 10, 123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:158:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed int, INT_MIN, INT_MAX, "%d", xstrtoi, str, base, i, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:174:2: note: in expansion of macro 'check_strtoint' check_strtoint("0123", 10, 123); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:158:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed int, INT_MIN, INT_MAX, "%d", xstrtoi, str, base, i, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:174:2: note: in expansion of macro 'check_strtoint' check_strtoint("0123", 10, 123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:158:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed int, INT_MIN, INT_MAX, "%d", xstrtoi, str, base, i, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:174:2: note: in expansion of macro 'check_strtoint' check_strtoint("0123", 10, 123); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:159:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long, LONG_MIN, LONG_MAX, "%ld", xstrtol, str, base, l, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:174:2: note: in expansion of macro 'check_strtoint' check_strtoint("0123", 10, 123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:159:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long, LONG_MIN, LONG_MAX, "%ld", xstrtol, str, base, l, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:174:2: note: in expansion of macro 'check_strtoint' check_strtoint("0123", 10, 123); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:159:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long, LONG_MIN, LONG_MAX, "%ld", xstrtol, str, base, l, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:174:2: note: in expansion of macro 'check_strtoint' check_strtoint("0123", 10, 123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:159:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long, LONG_MIN, LONG_MAX, "%ld", xstrtol, str, base, l, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:174:2: note: in expansion of macro 'check_strtoint' check_strtoint("0123", 10, 123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:53:4: note: in expansion of macro 'bfs_diag' (bfs_diag(__VA_ARGS__)) \ ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:159:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long, LONG_MIN, LONG_MAX, "%ld", xstrtol, str, base, l, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:174:2: note: in expansion of macro 'check_strtoint' check_strtoint("0123", 10, 123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:54:4: note: in expansion of macro 'bfs_diag' (bfs_diag("Check failed: `%s`", str)) ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:159:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long, LONG_MIN, LONG_MAX, "%ld", xstrtol, str, base, l, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:174:2: note: in expansion of macro 'check_strtoint' check_strtoint("0123", 10, 123); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:159:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long, LONG_MIN, LONG_MAX, "%ld", xstrtol, str, base, l, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:174:2: note: in expansion of macro 'check_strtoint' check_strtoint("0123", 10, 123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:159:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long, LONG_MIN, LONG_MAX, "%ld", xstrtol, str, base, l, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:174:2: note: in expansion of macro 'check_strtoint' check_strtoint("0123", 10, 123); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:159:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long, LONG_MIN, LONG_MAX, "%ld", xstrtol, str, base, l, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:174:2: note: in expansion of macro 'check_strtoint' check_strtoint("0123", 10, 123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:159:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long, LONG_MIN, LONG_MAX, "%ld", xstrtol, str, base, l, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:174:2: note: in expansion of macro 'check_strtoint' check_strtoint("0123", 10, 123); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:160:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long long, LLONG_MIN, LLONG_MAX, "%lld", xstrtoll, str, base, ll, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:174:2: note: in expansion of macro 'check_strtoint' check_strtoint("0123", 10, 123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:160:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long long, LLONG_MIN, LLONG_MAX, "%lld", xstrtoll, str, base, ll, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:174:2: note: in expansion of macro 'check_strtoint' check_strtoint("0123", 10, 123); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:160:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long long, LLONG_MIN, LLONG_MAX, "%lld", xstrtoll, str, base, ll, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:174:2: note: in expansion of macro 'check_strtoint' check_strtoint("0123", 10, 123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:160:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long long, LLONG_MIN, LLONG_MAX, "%lld", xstrtoll, str, base, ll, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:174:2: note: in expansion of macro 'check_strtoint' check_strtoint("0123", 10, 123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:53:4: note: in expansion of macro 'bfs_diag' (bfs_diag(__VA_ARGS__)) \ ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:160:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long long, LLONG_MIN, LLONG_MAX, "%lld", xstrtoll, str, base, ll, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:174:2: note: in expansion of macro 'check_strtoint' check_strtoint("0123", 10, 123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:54:4: note: in expansion of macro 'bfs_diag' (bfs_diag("Check failed: `%s`", str)) ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:160:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long long, LLONG_MIN, LLONG_MAX, "%lld", xstrtoll, str, base, ll, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:174:2: note: in expansion of macro 'check_strtoint' check_strtoint("0123", 10, 123); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:160:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long long, LLONG_MIN, LLONG_MAX, "%lld", xstrtoll, str, base, ll, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:174:2: note: in expansion of macro 'check_strtoint' check_strtoint("0123", 10, 123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:160:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long long, LLONG_MIN, LLONG_MAX, "%lld", xstrtoll, str, base, ll, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:174:2: note: in expansion of macro 'check_strtoint' check_strtoint("0123", 10, 123); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:160:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long long, LLONG_MIN, LLONG_MAX, "%lld", xstrtoll, str, base, ll, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:174:2: note: in expansion of macro 'check_strtoint' check_strtoint("0123", 10, 123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:160:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long long, LLONG_MIN, LLONG_MAX, "%lld", xstrtoll, str, base, ll, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:174:2: note: in expansion of macro 'check_strtoint' check_strtoint("0123", 10, 123); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:161:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned short, 0, USHRT_MAX, "%u", xstrtous, str, base, us, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:174:2: note: in expansion of macro 'check_strtoint' check_strtoint("0123", 10, 123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:161:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned short, 0, USHRT_MAX, "%u", xstrtous, str, base, us, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:174:2: note: in expansion of macro 'check_strtoint' check_strtoint("0123", 10, 123); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:161:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned short, 0, USHRT_MAX, "%u", xstrtous, str, base, us, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:174:2: note: in expansion of macro 'check_strtoint' check_strtoint("0123", 10, 123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:161:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned short, 0, USHRT_MAX, "%u", xstrtous, str, base, us, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:174:2: note: in expansion of macro 'check_strtoint' check_strtoint("0123", 10, 123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:53:4: note: in expansion of macro 'bfs_diag' (bfs_diag(__VA_ARGS__)) \ ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:161:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned short, 0, USHRT_MAX, "%u", xstrtous, str, base, us, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:174:2: note: in expansion of macro 'check_strtoint' check_strtoint("0123", 10, 123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:54:4: note: in expansion of macro 'bfs_diag' (bfs_diag("Check failed: `%s`", str)) ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:161:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned short, 0, USHRT_MAX, "%u", xstrtous, str, base, us, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:174:2: note: in expansion of macro 'check_strtoint' check_strtoint("0123", 10, 123); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:161:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned short, 0, USHRT_MAX, "%u", xstrtous, str, base, us, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:174:2: note: in expansion of macro 'check_strtoint' check_strtoint("0123", 10, 123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:161:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned short, 0, USHRT_MAX, "%u", xstrtous, str, base, us, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:174:2: note: in expansion of macro 'check_strtoint' check_strtoint("0123", 10, 123); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:161:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned short, 0, USHRT_MAX, "%u", xstrtous, str, base, us, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:174:2: note: in expansion of macro 'check_strtoint' check_strtoint("0123", 10, 123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:161:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned short, 0, USHRT_MAX, "%u", xstrtous, str, base, us, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:174:2: note: in expansion of macro 'check_strtoint' check_strtoint("0123", 10, 123); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:162:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned int, 0, UINT_MAX, "%u", xstrtoui, str, base, ui, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:174:2: note: in expansion of macro 'check_strtoint' check_strtoint("0123", 10, 123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:162:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned int, 0, UINT_MAX, "%u", xstrtoui, str, base, ui, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:174:2: note: in expansion of macro 'check_strtoint' check_strtoint("0123", 10, 123); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:162:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned int, 0, UINT_MAX, "%u", xstrtoui, str, base, ui, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:174:2: note: in expansion of macro 'check_strtoint' check_strtoint("0123", 10, 123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:162:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned int, 0, UINT_MAX, "%u", xstrtoui, str, base, ui, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:174:2: note: in expansion of macro 'check_strtoint' check_strtoint("0123", 10, 123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:53:4: note: in expansion of macro 'bfs_diag' (bfs_diag(__VA_ARGS__)) \ ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:162:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned int, 0, UINT_MAX, "%u", xstrtoui, str, base, ui, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:174:2: note: in expansion of macro 'check_strtoint' check_strtoint("0123", 10, 123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:54:4: note: in expansion of macro 'bfs_diag' (bfs_diag("Check failed: `%s`", str)) ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:162:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned int, 0, UINT_MAX, "%u", xstrtoui, str, base, ui, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:174:2: note: in expansion of macro 'check_strtoint' check_strtoint("0123", 10, 123); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:162:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned int, 0, UINT_MAX, "%u", xstrtoui, str, base, ui, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:174:2: note: in expansion of macro 'check_strtoint' check_strtoint("0123", 10, 123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:162:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned int, 0, UINT_MAX, "%u", xstrtoui, str, base, ui, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:174:2: note: in expansion of macro 'check_strtoint' check_strtoint("0123", 10, 123); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:162:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned int, 0, UINT_MAX, "%u", xstrtoui, str, base, ui, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:174:2: note: in expansion of macro 'check_strtoint' check_strtoint("0123", 10, 123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:162:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned int, 0, UINT_MAX, "%u", xstrtoui, str, base, ui, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:174:2: note: in expansion of macro 'check_strtoint' check_strtoint("0123", 10, 123); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:163:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long, 0, ULONG_MAX, "%lu", xstrtoul, str, base, ul, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:174:2: note: in expansion of macro 'check_strtoint' check_strtoint("0123", 10, 123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:163:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long, 0, ULONG_MAX, "%lu", xstrtoul, str, base, ul, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:174:2: note: in expansion of macro 'check_strtoint' check_strtoint("0123", 10, 123); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:163:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long, 0, ULONG_MAX, "%lu", xstrtoul, str, base, ul, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:174:2: note: in expansion of macro 'check_strtoint' check_strtoint("0123", 10, 123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:163:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long, 0, ULONG_MAX, "%lu", xstrtoul, str, base, ul, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:174:2: note: in expansion of macro 'check_strtoint' check_strtoint("0123", 10, 123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:53:4: note: in expansion of macro 'bfs_diag' (bfs_diag(__VA_ARGS__)) \ ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:163:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long, 0, ULONG_MAX, "%lu", xstrtoul, str, base, ul, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:174:2: note: in expansion of macro 'check_strtoint' check_strtoint("0123", 10, 123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:54:4: note: in expansion of macro 'bfs_diag' (bfs_diag("Check failed: `%s`", str)) ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:163:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long, 0, ULONG_MAX, "%lu", xstrtoul, str, base, ul, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:174:2: note: in expansion of macro 'check_strtoint' check_strtoint("0123", 10, 123); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:163:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long, 0, ULONG_MAX, "%lu", xstrtoul, str, base, ul, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:174:2: note: in expansion of macro 'check_strtoint' check_strtoint("0123", 10, 123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:163:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long, 0, ULONG_MAX, "%lu", xstrtoul, str, base, ul, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:174:2: note: in expansion of macro 'check_strtoint' check_strtoint("0123", 10, 123); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:163:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long, 0, ULONG_MAX, "%lu", xstrtoul, str, base, ul, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:174:2: note: in expansion of macro 'check_strtoint' check_strtoint("0123", 10, 123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:163:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long, 0, ULONG_MAX, "%lu", xstrtoul, str, base, ul, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:174:2: note: in expansion of macro 'check_strtoint' check_strtoint("0123", 10, 123); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:164:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long long, 0, ULLONG_MAX, "%llu", xstrtoull, str, base, ull, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:174:2: note: in expansion of macro 'check_strtoint' check_strtoint("0123", 10, 123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:164:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long long, 0, ULLONG_MAX, "%llu", xstrtoull, str, base, ull, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:174:2: note: in expansion of macro 'check_strtoint' check_strtoint("0123", 10, 123); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:164:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long long, 0, ULLONG_MAX, "%llu", xstrtoull, str, base, ull, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:174:2: note: in expansion of macro 'check_strtoint' check_strtoint("0123", 10, 123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:164:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long long, 0, ULLONG_MAX, "%llu", xstrtoull, str, base, ull, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:174:2: note: in expansion of macro 'check_strtoint' check_strtoint("0123", 10, 123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:53:4: note: in expansion of macro 'bfs_diag' (bfs_diag(__VA_ARGS__)) \ ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:164:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long long, 0, ULLONG_MAX, "%llu", xstrtoull, str, base, ull, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:174:2: note: in expansion of macro 'check_strtoint' check_strtoint("0123", 10, 123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:54:4: note: in expansion of macro 'bfs_diag' (bfs_diag("Check failed: `%s`", str)) ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:164:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long long, 0, ULLONG_MAX, "%llu", xstrtoull, str, base, ull, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:174:2: note: in expansion of macro 'check_strtoint' check_strtoint("0123", 10, 123); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:164:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long long, 0, ULLONG_MAX, "%llu", xstrtoull, str, base, ull, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:174:2: note: in expansion of macro 'check_strtoint' check_strtoint("0123", 10, 123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:164:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long long, 0, ULLONG_MAX, "%llu", xstrtoull, str, base, ull, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:174:2: note: in expansion of macro 'check_strtoint' check_strtoint("0123", 10, 123); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:164:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long long, 0, ULLONG_MAX, "%llu", xstrtoull, str, base, ull, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:174:2: note: in expansion of macro 'check_strtoint' check_strtoint("0123", 10, 123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:164:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long long, 0, ULLONG_MAX, "%llu", xstrtoull, str, base, ull, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:174:2: note: in expansion of macro 'check_strtoint' check_strtoint("0123", 10, 123); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:157:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed short, SHRT_MIN, SHRT_MAX, "%d", xstrtos, str, base, s, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:175:2: note: in expansion of macro 'check_strtoint' check_strtoint("0789", 10, 789); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:157:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed short, SHRT_MIN, SHRT_MAX, "%d", xstrtos, str, base, s, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:175:2: note: in expansion of macro 'check_strtoint' check_strtoint("0789", 10, 789); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:157:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed short, SHRT_MIN, SHRT_MAX, "%d", xstrtos, str, base, s, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:175:2: note: in expansion of macro 'check_strtoint' check_strtoint("0789", 10, 789); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:157:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed short, SHRT_MIN, SHRT_MAX, "%d", xstrtos, str, base, s, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:175:2: note: in expansion of macro 'check_strtoint' check_strtoint("0789", 10, 789); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:53:4: note: in expansion of macro 'bfs_diag' (bfs_diag(__VA_ARGS__)) \ ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:157:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed short, SHRT_MIN, SHRT_MAX, "%d", xstrtos, str, base, s, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:175:2: note: in expansion of macro 'check_strtoint' check_strtoint("0789", 10, 789); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:54:4: note: in expansion of macro 'bfs_diag' (bfs_diag("Check failed: `%s`", str)) ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:157:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed short, SHRT_MIN, SHRT_MAX, "%d", xstrtos, str, base, s, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:175:2: note: in expansion of macro 'check_strtoint' check_strtoint("0789", 10, 789); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:157:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed short, SHRT_MIN, SHRT_MAX, "%d", xstrtos, str, base, s, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:175:2: note: in expansion of macro 'check_strtoint' check_strtoint("0789", 10, 789); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:157:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed short, SHRT_MIN, SHRT_MAX, "%d", xstrtos, str, base, s, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:175:2: note: in expansion of macro 'check_strtoint' check_strtoint("0789", 10, 789); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:157:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed short, SHRT_MIN, SHRT_MAX, "%d", xstrtos, str, base, s, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:175:2: note: in expansion of macro 'check_strtoint' check_strtoint("0789", 10, 789); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:157:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed short, SHRT_MIN, SHRT_MAX, "%d", xstrtos, str, base, s, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:175:2: note: in expansion of macro 'check_strtoint' check_strtoint("0789", 10, 789); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:158:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed int, INT_MIN, INT_MAX, "%d", xstrtoi, str, base, i, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:175:2: note: in expansion of macro 'check_strtoint' check_strtoint("0789", 10, 789); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:158:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed int, INT_MIN, INT_MAX, "%d", xstrtoi, str, base, i, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:175:2: note: in expansion of macro 'check_strtoint' check_strtoint("0789", 10, 789); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:158:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed int, INT_MIN, INT_MAX, "%d", xstrtoi, str, base, i, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:175:2: note: in expansion of macro 'check_strtoint' check_strtoint("0789", 10, 789); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:158:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed int, INT_MIN, INT_MAX, "%d", xstrtoi, str, base, i, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:175:2: note: in expansion of macro 'check_strtoint' check_strtoint("0789", 10, 789); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:53:4: note: in expansion of macro 'bfs_diag' (bfs_diag(__VA_ARGS__)) \ ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:158:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed int, INT_MIN, INT_MAX, "%d", xstrtoi, str, base, i, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:175:2: note: in expansion of macro 'check_strtoint' check_strtoint("0789", 10, 789); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:54:4: note: in expansion of macro 'bfs_diag' (bfs_diag("Check failed: `%s`", str)) ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:158:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed int, INT_MIN, INT_MAX, "%d", xstrtoi, str, base, i, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:175:2: note: in expansion of macro 'check_strtoint' check_strtoint("0789", 10, 789); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:158:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed int, INT_MIN, INT_MAX, "%d", xstrtoi, str, base, i, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:175:2: note: in expansion of macro 'check_strtoint' check_strtoint("0789", 10, 789); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:158:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed int, INT_MIN, INT_MAX, "%d", xstrtoi, str, base, i, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:175:2: note: in expansion of macro 'check_strtoint' check_strtoint("0789", 10, 789); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:158:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed int, INT_MIN, INT_MAX, "%d", xstrtoi, str, base, i, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:175:2: note: in expansion of macro 'check_strtoint' check_strtoint("0789", 10, 789); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:158:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed int, INT_MIN, INT_MAX, "%d", xstrtoi, str, base, i, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:175:2: note: in expansion of macro 'check_strtoint' check_strtoint("0789", 10, 789); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:159:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long, LONG_MIN, LONG_MAX, "%ld", xstrtol, str, base, l, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:175:2: note: in expansion of macro 'check_strtoint' check_strtoint("0789", 10, 789); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:159:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long, LONG_MIN, LONG_MAX, "%ld", xstrtol, str, base, l, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:175:2: note: in expansion of macro 'check_strtoint' check_strtoint("0789", 10, 789); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:159:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long, LONG_MIN, LONG_MAX, "%ld", xstrtol, str, base, l, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:175:2: note: in expansion of macro 'check_strtoint' check_strtoint("0789", 10, 789); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:159:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long, LONG_MIN, LONG_MAX, "%ld", xstrtol, str, base, l, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:175:2: note: in expansion of macro 'check_strtoint' check_strtoint("0789", 10, 789); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:53:4: note: in expansion of macro 'bfs_diag' (bfs_diag(__VA_ARGS__)) \ ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:159:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long, LONG_MIN, LONG_MAX, "%ld", xstrtol, str, base, l, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:175:2: note: in expansion of macro 'check_strtoint' check_strtoint("0789", 10, 789); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:54:4: note: in expansion of macro 'bfs_diag' (bfs_diag("Check failed: `%s`", str)) ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:159:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long, LONG_MIN, LONG_MAX, "%ld", xstrtol, str, base, l, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:175:2: note: in expansion of macro 'check_strtoint' check_strtoint("0789", 10, 789); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:159:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long, LONG_MIN, LONG_MAX, "%ld", xstrtol, str, base, l, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:175:2: note: in expansion of macro 'check_strtoint' check_strtoint("0789", 10, 789); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:159:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long, LONG_MIN, LONG_MAX, "%ld", xstrtol, str, base, l, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:175:2: note: in expansion of macro 'check_strtoint' check_strtoint("0789", 10, 789); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:159:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long, LONG_MIN, LONG_MAX, "%ld", xstrtol, str, base, l, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:175:2: note: in expansion of macro 'check_strtoint' check_strtoint("0789", 10, 789); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:159:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long, LONG_MIN, LONG_MAX, "%ld", xstrtol, str, base, l, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:175:2: note: in expansion of macro 'check_strtoint' check_strtoint("0789", 10, 789); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:160:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long long, LLONG_MIN, LLONG_MAX, "%lld", xstrtoll, str, base, ll, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:175:2: note: in expansion of macro 'check_strtoint' check_strtoint("0789", 10, 789); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:160:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long long, LLONG_MIN, LLONG_MAX, "%lld", xstrtoll, str, base, ll, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:175:2: note: in expansion of macro 'check_strtoint' check_strtoint("0789", 10, 789); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:160:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long long, LLONG_MIN, LLONG_MAX, "%lld", xstrtoll, str, base, ll, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:175:2: note: in expansion of macro 'check_strtoint' check_strtoint("0789", 10, 789); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:160:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long long, LLONG_MIN, LLONG_MAX, "%lld", xstrtoll, str, base, ll, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:175:2: note: in expansion of macro 'check_strtoint' check_strtoint("0789", 10, 789); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:53:4: note: in expansion of macro 'bfs_diag' (bfs_diag(__VA_ARGS__)) \ ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:160:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long long, LLONG_MIN, LLONG_MAX, "%lld", xstrtoll, str, base, ll, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:175:2: note: in expansion of macro 'check_strtoint' check_strtoint("0789", 10, 789); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:54:4: note: in expansion of macro 'bfs_diag' (bfs_diag("Check failed: `%s`", str)) ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:160:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long long, LLONG_MIN, LLONG_MAX, "%lld", xstrtoll, str, base, ll, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:175:2: note: in expansion of macro 'check_strtoint' check_strtoint("0789", 10, 789); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:160:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long long, LLONG_MIN, LLONG_MAX, "%lld", xstrtoll, str, base, ll, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:175:2: note: in expansion of macro 'check_strtoint' check_strtoint("0789", 10, 789); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:160:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long long, LLONG_MIN, LLONG_MAX, "%lld", xstrtoll, str, base, ll, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:175:2: note: in expansion of macro 'check_strtoint' check_strtoint("0789", 10, 789); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:160:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long long, LLONG_MIN, LLONG_MAX, "%lld", xstrtoll, str, base, ll, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:175:2: note: in expansion of macro 'check_strtoint' check_strtoint("0789", 10, 789); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:160:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long long, LLONG_MIN, LLONG_MAX, "%lld", xstrtoll, str, base, ll, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:175:2: note: in expansion of macro 'check_strtoint' check_strtoint("0789", 10, 789); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:161:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned short, 0, USHRT_MAX, "%u", xstrtous, str, base, us, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:175:2: note: in expansion of macro 'check_strtoint' check_strtoint("0789", 10, 789); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:161:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned short, 0, USHRT_MAX, "%u", xstrtous, str, base, us, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:175:2: note: in expansion of macro 'check_strtoint' check_strtoint("0789", 10, 789); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:161:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned short, 0, USHRT_MAX, "%u", xstrtous, str, base, us, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:175:2: note: in expansion of macro 'check_strtoint' check_strtoint("0789", 10, 789); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:161:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned short, 0, USHRT_MAX, "%u", xstrtous, str, base, us, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:175:2: note: in expansion of macro 'check_strtoint' check_strtoint("0789", 10, 789); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:53:4: note: in expansion of macro 'bfs_diag' (bfs_diag(__VA_ARGS__)) \ ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:161:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned short, 0, USHRT_MAX, "%u", xstrtous, str, base, us, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:175:2: note: in expansion of macro 'check_strtoint' check_strtoint("0789", 10, 789); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:54:4: note: in expansion of macro 'bfs_diag' (bfs_diag("Check failed: `%s`", str)) ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:161:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned short, 0, USHRT_MAX, "%u", xstrtous, str, base, us, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:175:2: note: in expansion of macro 'check_strtoint' check_strtoint("0789", 10, 789); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:161:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned short, 0, USHRT_MAX, "%u", xstrtous, str, base, us, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:175:2: note: in expansion of macro 'check_strtoint' check_strtoint("0789", 10, 789); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:161:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned short, 0, USHRT_MAX, "%u", xstrtous, str, base, us, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:175:2: note: in expansion of macro 'check_strtoint' check_strtoint("0789", 10, 789); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:161:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned short, 0, USHRT_MAX, "%u", xstrtous, str, base, us, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:175:2: note: in expansion of macro 'check_strtoint' check_strtoint("0789", 10, 789); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:161:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned short, 0, USHRT_MAX, "%u", xstrtous, str, base, us, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:175:2: note: in expansion of macro 'check_strtoint' check_strtoint("0789", 10, 789); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:162:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned int, 0, UINT_MAX, "%u", xstrtoui, str, base, ui, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:175:2: note: in expansion of macro 'check_strtoint' check_strtoint("0789", 10, 789); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:162:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned int, 0, UINT_MAX, "%u", xstrtoui, str, base, ui, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:175:2: note: in expansion of macro 'check_strtoint' check_strtoint("0789", 10, 789); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:162:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned int, 0, UINT_MAX, "%u", xstrtoui, str, base, ui, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:175:2: note: in expansion of macro 'check_strtoint' check_strtoint("0789", 10, 789); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:162:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned int, 0, UINT_MAX, "%u", xstrtoui, str, base, ui, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:175:2: note: in expansion of macro 'check_strtoint' check_strtoint("0789", 10, 789); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:53:4: note: in expansion of macro 'bfs_diag' (bfs_diag(__VA_ARGS__)) \ ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:162:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned int, 0, UINT_MAX, "%u", xstrtoui, str, base, ui, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:175:2: note: in expansion of macro 'check_strtoint' check_strtoint("0789", 10, 789); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:54:4: note: in expansion of macro 'bfs_diag' (bfs_diag("Check failed: `%s`", str)) ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:162:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned int, 0, UINT_MAX, "%u", xstrtoui, str, base, ui, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:175:2: note: in expansion of macro 'check_strtoint' check_strtoint("0789", 10, 789); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:162:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned int, 0, UINT_MAX, "%u", xstrtoui, str, base, ui, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:175:2: note: in expansion of macro 'check_strtoint' check_strtoint("0789", 10, 789); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:162:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned int, 0, UINT_MAX, "%u", xstrtoui, str, base, ui, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:175:2: note: in expansion of macro 'check_strtoint' check_strtoint("0789", 10, 789); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:162:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned int, 0, UINT_MAX, "%u", xstrtoui, str, base, ui, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:175:2: note: in expansion of macro 'check_strtoint' check_strtoint("0789", 10, 789); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:162:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned int, 0, UINT_MAX, "%u", xstrtoui, str, base, ui, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:175:2: note: in expansion of macro 'check_strtoint' check_strtoint("0789", 10, 789); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:163:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long, 0, ULONG_MAX, "%lu", xstrtoul, str, base, ul, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:175:2: note: in expansion of macro 'check_strtoint' check_strtoint("0789", 10, 789); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:163:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long, 0, ULONG_MAX, "%lu", xstrtoul, str, base, ul, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:175:2: note: in expansion of macro 'check_strtoint' check_strtoint("0789", 10, 789); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:163:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long, 0, ULONG_MAX, "%lu", xstrtoul, str, base, ul, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:175:2: note: in expansion of macro 'check_strtoint' check_strtoint("0789", 10, 789); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:163:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long, 0, ULONG_MAX, "%lu", xstrtoul, str, base, ul, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:175:2: note: in expansion of macro 'check_strtoint' check_strtoint("0789", 10, 789); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:53:4: note: in expansion of macro 'bfs_diag' (bfs_diag(__VA_ARGS__)) \ ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:163:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long, 0, ULONG_MAX, "%lu", xstrtoul, str, base, ul, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:175:2: note: in expansion of macro 'check_strtoint' check_strtoint("0789", 10, 789); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:54:4: note: in expansion of macro 'bfs_diag' (bfs_diag("Check failed: `%s`", str)) ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:163:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long, 0, ULONG_MAX, "%lu", xstrtoul, str, base, ul, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:175:2: note: in expansion of macro 'check_strtoint' check_strtoint("0789", 10, 789); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:163:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long, 0, ULONG_MAX, "%lu", xstrtoul, str, base, ul, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:175:2: note: in expansion of macro 'check_strtoint' check_strtoint("0789", 10, 789); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:163:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long, 0, ULONG_MAX, "%lu", xstrtoul, str, base, ul, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:175:2: note: in expansion of macro 'check_strtoint' check_strtoint("0789", 10, 789); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:163:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long, 0, ULONG_MAX, "%lu", xstrtoul, str, base, ul, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:175:2: note: in expansion of macro 'check_strtoint' check_strtoint("0789", 10, 789); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:163:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long, 0, ULONG_MAX, "%lu", xstrtoul, str, base, ul, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:175:2: note: in expansion of macro 'check_strtoint' check_strtoint("0789", 10, 789); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:164:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long long, 0, ULLONG_MAX, "%llu", xstrtoull, str, base, ull, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:175:2: note: in expansion of macro 'check_strtoint' check_strtoint("0789", 10, 789); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:164:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long long, 0, ULLONG_MAX, "%llu", xstrtoull, str, base, ull, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:175:2: note: in expansion of macro 'check_strtoint' check_strtoint("0789", 10, 789); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:164:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long long, 0, ULLONG_MAX, "%llu", xstrtoull, str, base, ull, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:175:2: note: in expansion of macro 'check_strtoint' check_strtoint("0789", 10, 789); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:164:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long long, 0, ULLONG_MAX, "%llu", xstrtoull, str, base, ull, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:175:2: note: in expansion of macro 'check_strtoint' check_strtoint("0789", 10, 789); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:53:4: note: in expansion of macro 'bfs_diag' (bfs_diag(__VA_ARGS__)) \ ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:164:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long long, 0, ULLONG_MAX, "%llu", xstrtoull, str, base, ull, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:175:2: note: in expansion of macro 'check_strtoint' check_strtoint("0789", 10, 789); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:54:4: note: in expansion of macro 'bfs_diag' (bfs_diag("Check failed: `%s`", str)) ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:164:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long long, 0, ULLONG_MAX, "%llu", xstrtoull, str, base, ull, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:175:2: note: in expansion of macro 'check_strtoint' check_strtoint("0789", 10, 789); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:164:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long long, 0, ULLONG_MAX, "%llu", xstrtoull, str, base, ull, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:175:2: note: in expansion of macro 'check_strtoint' check_strtoint("0789", 10, 789); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:164:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long long, 0, ULLONG_MAX, "%llu", xstrtoull, str, base, ull, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:175:2: note: in expansion of macro 'check_strtoint' check_strtoint("0789", 10, 789); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:164:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long long, 0, ULLONG_MAX, "%llu", xstrtoull, str, base, ull, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:175:2: note: in expansion of macro 'check_strtoint' check_strtoint("0789", 10, 789); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:164:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long long, 0, ULLONG_MAX, "%llu", xstrtoull, str, base, ull, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:175:2: note: in expansion of macro 'check_strtoint' check_strtoint("0789", 10, 789); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:157:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed short, SHRT_MIN, SHRT_MAX, "%d", xstrtos, str, base, s, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:177:2: note: in expansion of macro 'check_strtoint' check_strtoint("123", 16, 0x123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:157:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed short, SHRT_MIN, SHRT_MAX, "%d", xstrtos, str, base, s, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:177:2: note: in expansion of macro 'check_strtoint' check_strtoint("123", 16, 0x123); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:157:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed short, SHRT_MIN, SHRT_MAX, "%d", xstrtos, str, base, s, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:177:2: note: in expansion of macro 'check_strtoint' check_strtoint("123", 16, 0x123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:157:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed short, SHRT_MIN, SHRT_MAX, "%d", xstrtos, str, base, s, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:177:2: note: in expansion of macro 'check_strtoint' check_strtoint("123", 16, 0x123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:53:4: note: in expansion of macro 'bfs_diag' (bfs_diag(__VA_ARGS__)) \ ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:157:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed short, SHRT_MIN, SHRT_MAX, "%d", xstrtos, str, base, s, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:177:2: note: in expansion of macro 'check_strtoint' check_strtoint("123", 16, 0x123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:54:4: note: in expansion of macro 'bfs_diag' (bfs_diag("Check failed: `%s`", str)) ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:157:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed short, SHRT_MIN, SHRT_MAX, "%d", xstrtos, str, base, s, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:177:2: note: in expansion of macro 'check_strtoint' check_strtoint("123", 16, 0x123); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:157:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed short, SHRT_MIN, SHRT_MAX, "%d", xstrtos, str, base, s, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:177:2: note: in expansion of macro 'check_strtoint' check_strtoint("123", 16, 0x123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:157:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed short, SHRT_MIN, SHRT_MAX, "%d", xstrtos, str, base, s, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:177:2: note: in expansion of macro 'check_strtoint' check_strtoint("123", 16, 0x123); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:157:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed short, SHRT_MIN, SHRT_MAX, "%d", xstrtos, str, base, s, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:177:2: note: in expansion of macro 'check_strtoint' check_strtoint("123", 16, 0x123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:157:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed short, SHRT_MIN, SHRT_MAX, "%d", xstrtos, str, base, s, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:177:2: note: in expansion of macro 'check_strtoint' check_strtoint("123", 16, 0x123); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:158:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed int, INT_MIN, INT_MAX, "%d", xstrtoi, str, base, i, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:177:2: note: in expansion of macro 'check_strtoint' check_strtoint("123", 16, 0x123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:158:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed int, INT_MIN, INT_MAX, "%d", xstrtoi, str, base, i, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:177:2: note: in expansion of macro 'check_strtoint' check_strtoint("123", 16, 0x123); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:158:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed int, INT_MIN, INT_MAX, "%d", xstrtoi, str, base, i, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:177:2: note: in expansion of macro 'check_strtoint' check_strtoint("123", 16, 0x123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:158:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed int, INT_MIN, INT_MAX, "%d", xstrtoi, str, base, i, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:177:2: note: in expansion of macro 'check_strtoint' check_strtoint("123", 16, 0x123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:53:4: note: in expansion of macro 'bfs_diag' (bfs_diag(__VA_ARGS__)) \ ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:158:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed int, INT_MIN, INT_MAX, "%d", xstrtoi, str, base, i, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:177:2: note: in expansion of macro 'check_strtoint' check_strtoint("123", 16, 0x123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:54:4: note: in expansion of macro 'bfs_diag' (bfs_diag("Check failed: `%s`", str)) ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:158:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed int, INT_MIN, INT_MAX, "%d", xstrtoi, str, base, i, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:177:2: note: in expansion of macro 'check_strtoint' check_strtoint("123", 16, 0x123); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:158:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed int, INT_MIN, INT_MAX, "%d", xstrtoi, str, base, i, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:177:2: note: in expansion of macro 'check_strtoint' check_strtoint("123", 16, 0x123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:158:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed int, INT_MIN, INT_MAX, "%d", xstrtoi, str, base, i, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:177:2: note: in expansion of macro 'check_strtoint' check_strtoint("123", 16, 0x123); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:158:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed int, INT_MIN, INT_MAX, "%d", xstrtoi, str, base, i, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:177:2: note: in expansion of macro 'check_strtoint' check_strtoint("123", 16, 0x123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:158:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed int, INT_MIN, INT_MAX, "%d", xstrtoi, str, base, i, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:177:2: note: in expansion of macro 'check_strtoint' check_strtoint("123", 16, 0x123); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:159:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long, LONG_MIN, LONG_MAX, "%ld", xstrtol, str, base, l, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:177:2: note: in expansion of macro 'check_strtoint' check_strtoint("123", 16, 0x123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:159:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long, LONG_MIN, LONG_MAX, "%ld", xstrtol, str, base, l, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:177:2: note: in expansion of macro 'check_strtoint' check_strtoint("123", 16, 0x123); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:159:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long, LONG_MIN, LONG_MAX, "%ld", xstrtol, str, base, l, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:177:2: note: in expansion of macro 'check_strtoint' check_strtoint("123", 16, 0x123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:159:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long, LONG_MIN, LONG_MAX, "%ld", xstrtol, str, base, l, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:177:2: note: in expansion of macro 'check_strtoint' check_strtoint("123", 16, 0x123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:53:4: note: in expansion of macro 'bfs_diag' (bfs_diag(__VA_ARGS__)) \ ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:159:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long, LONG_MIN, LONG_MAX, "%ld", xstrtol, str, base, l, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:177:2: note: in expansion of macro 'check_strtoint' check_strtoint("123", 16, 0x123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:54:4: note: in expansion of macro 'bfs_diag' (bfs_diag("Check failed: `%s`", str)) ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:159:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long, LONG_MIN, LONG_MAX, "%ld", xstrtol, str, base, l, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:177:2: note: in expansion of macro 'check_strtoint' check_strtoint("123", 16, 0x123); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:159:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long, LONG_MIN, LONG_MAX, "%ld", xstrtol, str, base, l, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:177:2: note: in expansion of macro 'check_strtoint' check_strtoint("123", 16, 0x123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:159:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long, LONG_MIN, LONG_MAX, "%ld", xstrtol, str, base, l, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:177:2: note: in expansion of macro 'check_strtoint' check_strtoint("123", 16, 0x123); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:159:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long, LONG_MIN, LONG_MAX, "%ld", xstrtol, str, base, l, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:177:2: note: in expansion of macro 'check_strtoint' check_strtoint("123", 16, 0x123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:159:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long, LONG_MIN, LONG_MAX, "%ld", xstrtol, str, base, l, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:177:2: note: in expansion of macro 'check_strtoint' check_strtoint("123", 16, 0x123); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:160:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long long, LLONG_MIN, LLONG_MAX, "%lld", xstrtoll, str, base, ll, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:177:2: note: in expansion of macro 'check_strtoint' check_strtoint("123", 16, 0x123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:160:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long long, LLONG_MIN, LLONG_MAX, "%lld", xstrtoll, str, base, ll, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:177:2: note: in expansion of macro 'check_strtoint' check_strtoint("123", 16, 0x123); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:160:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long long, LLONG_MIN, LLONG_MAX, "%lld", xstrtoll, str, base, ll, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:177:2: note: in expansion of macro 'check_strtoint' check_strtoint("123", 16, 0x123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:160:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long long, LLONG_MIN, LLONG_MAX, "%lld", xstrtoll, str, base, ll, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:177:2: note: in expansion of macro 'check_strtoint' check_strtoint("123", 16, 0x123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:53:4: note: in expansion of macro 'bfs_diag' (bfs_diag(__VA_ARGS__)) \ ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:160:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long long, LLONG_MIN, LLONG_MAX, "%lld", xstrtoll, str, base, ll, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:177:2: note: in expansion of macro 'check_strtoint' check_strtoint("123", 16, 0x123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:54:4: note: in expansion of macro 'bfs_diag' (bfs_diag("Check failed: `%s`", str)) ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:160:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long long, LLONG_MIN, LLONG_MAX, "%lld", xstrtoll, str, base, ll, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:177:2: note: in expansion of macro 'check_strtoint' check_strtoint("123", 16, 0x123); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:160:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long long, LLONG_MIN, LLONG_MAX, "%lld", xstrtoll, str, base, ll, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:177:2: note: in expansion of macro 'check_strtoint' check_strtoint("123", 16, 0x123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:160:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long long, LLONG_MIN, LLONG_MAX, "%lld", xstrtoll, str, base, ll, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:177:2: note: in expansion of macro 'check_strtoint' check_strtoint("123", 16, 0x123); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:160:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long long, LLONG_MIN, LLONG_MAX, "%lld", xstrtoll, str, base, ll, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:177:2: note: in expansion of macro 'check_strtoint' check_strtoint("123", 16, 0x123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:160:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long long, LLONG_MIN, LLONG_MAX, "%lld", xstrtoll, str, base, ll, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:177:2: note: in expansion of macro 'check_strtoint' check_strtoint("123", 16, 0x123); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:161:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned short, 0, USHRT_MAX, "%u", xstrtous, str, base, us, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:177:2: note: in expansion of macro 'check_strtoint' check_strtoint("123", 16, 0x123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:161:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned short, 0, USHRT_MAX, "%u", xstrtous, str, base, us, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:177:2: note: in expansion of macro 'check_strtoint' check_strtoint("123", 16, 0x123); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:161:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned short, 0, USHRT_MAX, "%u", xstrtous, str, base, us, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:177:2: note: in expansion of macro 'check_strtoint' check_strtoint("123", 16, 0x123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:161:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned short, 0, USHRT_MAX, "%u", xstrtous, str, base, us, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:177:2: note: in expansion of macro 'check_strtoint' check_strtoint("123", 16, 0x123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:53:4: note: in expansion of macro 'bfs_diag' (bfs_diag(__VA_ARGS__)) \ ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:161:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned short, 0, USHRT_MAX, "%u", xstrtous, str, base, us, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:177:2: note: in expansion of macro 'check_strtoint' check_strtoint("123", 16, 0x123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:54:4: note: in expansion of macro 'bfs_diag' (bfs_diag("Check failed: `%s`", str)) ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:161:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned short, 0, USHRT_MAX, "%u", xstrtous, str, base, us, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:177:2: note: in expansion of macro 'check_strtoint' check_strtoint("123", 16, 0x123); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:161:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned short, 0, USHRT_MAX, "%u", xstrtous, str, base, us, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:177:2: note: in expansion of macro 'check_strtoint' check_strtoint("123", 16, 0x123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:161:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned short, 0, USHRT_MAX, "%u", xstrtous, str, base, us, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:177:2: note: in expansion of macro 'check_strtoint' check_strtoint("123", 16, 0x123); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:161:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned short, 0, USHRT_MAX, "%u", xstrtous, str, base, us, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:177:2: note: in expansion of macro 'check_strtoint' check_strtoint("123", 16, 0x123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:161:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned short, 0, USHRT_MAX, "%u", xstrtous, str, base, us, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:177:2: note: in expansion of macro 'check_strtoint' check_strtoint("123", 16, 0x123); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:162:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned int, 0, UINT_MAX, "%u", xstrtoui, str, base, ui, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:177:2: note: in expansion of macro 'check_strtoint' check_strtoint("123", 16, 0x123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:162:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned int, 0, UINT_MAX, "%u", xstrtoui, str, base, ui, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:177:2: note: in expansion of macro 'check_strtoint' check_strtoint("123", 16, 0x123); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:162:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned int, 0, UINT_MAX, "%u", xstrtoui, str, base, ui, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:177:2: note: in expansion of macro 'check_strtoint' check_strtoint("123", 16, 0x123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:162:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned int, 0, UINT_MAX, "%u", xstrtoui, str, base, ui, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:177:2: note: in expansion of macro 'check_strtoint' check_strtoint("123", 16, 0x123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:53:4: note: in expansion of macro 'bfs_diag' (bfs_diag(__VA_ARGS__)) \ ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:162:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned int, 0, UINT_MAX, "%u", xstrtoui, str, base, ui, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:177:2: note: in expansion of macro 'check_strtoint' check_strtoint("123", 16, 0x123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:54:4: note: in expansion of macro 'bfs_diag' (bfs_diag("Check failed: `%s`", str)) ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:162:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned int, 0, UINT_MAX, "%u", xstrtoui, str, base, ui, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:177:2: note: in expansion of macro 'check_strtoint' check_strtoint("123", 16, 0x123); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:162:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned int, 0, UINT_MAX, "%u", xstrtoui, str, base, ui, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:177:2: note: in expansion of macro 'check_strtoint' check_strtoint("123", 16, 0x123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:162:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned int, 0, UINT_MAX, "%u", xstrtoui, str, base, ui, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:177:2: note: in expansion of macro 'check_strtoint' check_strtoint("123", 16, 0x123); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:162:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned int, 0, UINT_MAX, "%u", xstrtoui, str, base, ui, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:177:2: note: in expansion of macro 'check_strtoint' check_strtoint("123", 16, 0x123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:162:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned int, 0, UINT_MAX, "%u", xstrtoui, str, base, ui, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:177:2: note: in expansion of macro 'check_strtoint' check_strtoint("123", 16, 0x123); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:163:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long, 0, ULONG_MAX, "%lu", xstrtoul, str, base, ul, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:177:2: note: in expansion of macro 'check_strtoint' check_strtoint("123", 16, 0x123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:163:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long, 0, ULONG_MAX, "%lu", xstrtoul, str, base, ul, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:177:2: note: in expansion of macro 'check_strtoint' check_strtoint("123", 16, 0x123); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:163:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long, 0, ULONG_MAX, "%lu", xstrtoul, str, base, ul, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:177:2: note: in expansion of macro 'check_strtoint' check_strtoint("123", 16, 0x123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:163:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long, 0, ULONG_MAX, "%lu", xstrtoul, str, base, ul, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:177:2: note: in expansion of macro 'check_strtoint' check_strtoint("123", 16, 0x123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:53:4: note: in expansion of macro 'bfs_diag' (bfs_diag(__VA_ARGS__)) \ ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:163:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long, 0, ULONG_MAX, "%lu", xstrtoul, str, base, ul, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:177:2: note: in expansion of macro 'check_strtoint' check_strtoint("123", 16, 0x123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:54:4: note: in expansion of macro 'bfs_diag' (bfs_diag("Check failed: `%s`", str)) ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:163:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long, 0, ULONG_MAX, "%lu", xstrtoul, str, base, ul, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:177:2: note: in expansion of macro 'check_strtoint' check_strtoint("123", 16, 0x123); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:163:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long, 0, ULONG_MAX, "%lu", xstrtoul, str, base, ul, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:177:2: note: in expansion of macro 'check_strtoint' check_strtoint("123", 16, 0x123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:163:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long, 0, ULONG_MAX, "%lu", xstrtoul, str, base, ul, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:177:2: note: in expansion of macro 'check_strtoint' check_strtoint("123", 16, 0x123); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:163:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long, 0, ULONG_MAX, "%lu", xstrtoul, str, base, ul, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:177:2: note: in expansion of macro 'check_strtoint' check_strtoint("123", 16, 0x123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:163:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long, 0, ULONG_MAX, "%lu", xstrtoul, str, base, ul, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:177:2: note: in expansion of macro 'check_strtoint' check_strtoint("123", 16, 0x123); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:164:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long long, 0, ULLONG_MAX, "%llu", xstrtoull, str, base, ull, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:177:2: note: in expansion of macro 'check_strtoint' check_strtoint("123", 16, 0x123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:164:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long long, 0, ULLONG_MAX, "%llu", xstrtoull, str, base, ull, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:177:2: note: in expansion of macro 'check_strtoint' check_strtoint("123", 16, 0x123); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:164:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long long, 0, ULLONG_MAX, "%llu", xstrtoull, str, base, ull, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:177:2: note: in expansion of macro 'check_strtoint' check_strtoint("123", 16, 0x123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:164:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long long, 0, ULLONG_MAX, "%llu", xstrtoull, str, base, ull, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:177:2: note: in expansion of macro 'check_strtoint' check_strtoint("123", 16, 0x123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:53:4: note: in expansion of macro 'bfs_diag' (bfs_diag(__VA_ARGS__)) \ ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:164:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long long, 0, ULLONG_MAX, "%llu", xstrtoull, str, base, ull, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:177:2: note: in expansion of macro 'check_strtoint' check_strtoint("123", 16, 0x123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:54:4: note: in expansion of macro 'bfs_diag' (bfs_diag("Check failed: `%s`", str)) ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:164:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long long, 0, ULLONG_MAX, "%llu", xstrtoull, str, base, ull, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:177:2: note: in expansion of macro 'check_strtoint' check_strtoint("123", 16, 0x123); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:164:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long long, 0, ULLONG_MAX, "%llu", xstrtoull, str, base, ull, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:177:2: note: in expansion of macro 'check_strtoint' check_strtoint("123", 16, 0x123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:164:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long long, 0, ULLONG_MAX, "%llu", xstrtoull, str, base, ull, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:177:2: note: in expansion of macro 'check_strtoint' check_strtoint("123", 16, 0x123); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:164:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long long, 0, ULLONG_MAX, "%llu", xstrtoull, str, base, ull, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:177:2: note: in expansion of macro 'check_strtoint' check_strtoint("123", 16, 0x123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:164:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long long, 0, ULLONG_MAX, "%llu", xstrtoull, str, base, ull, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:177:2: note: in expansion of macro 'check_strtoint' check_strtoint("123", 16, 0x123); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:157:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed short, SHRT_MIN, SHRT_MAX, "%d", xstrtos, str, base, s, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:179:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFF", 0, 0x7FFF); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:157:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed short, SHRT_MIN, SHRT_MAX, "%d", xstrtos, str, base, s, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:179:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFF", 0, 0x7FFF); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:157:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed short, SHRT_MIN, SHRT_MAX, "%d", xstrtos, str, base, s, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:179:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFF", 0, 0x7FFF); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:157:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed short, SHRT_MIN, SHRT_MAX, "%d", xstrtos, str, base, s, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:179:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFF", 0, 0x7FFF); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:53:4: note: in expansion of macro 'bfs_diag' (bfs_diag(__VA_ARGS__)) \ ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:157:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed short, SHRT_MIN, SHRT_MAX, "%d", xstrtos, str, base, s, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:179:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFF", 0, 0x7FFF); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:54:4: note: in expansion of macro 'bfs_diag' (bfs_diag("Check failed: `%s`", str)) ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:157:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed short, SHRT_MIN, SHRT_MAX, "%d", xstrtos, str, base, s, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:179:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFF", 0, 0x7FFF); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:157:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed short, SHRT_MIN, SHRT_MAX, "%d", xstrtos, str, base, s, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:179:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFF", 0, 0x7FFF); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:157:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed short, SHRT_MIN, SHRT_MAX, "%d", xstrtos, str, base, s, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:179:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFF", 0, 0x7FFF); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:157:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed short, SHRT_MIN, SHRT_MAX, "%d", xstrtos, str, base, s, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:179:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFF", 0, 0x7FFF); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:157:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed short, SHRT_MIN, SHRT_MAX, "%d", xstrtos, str, base, s, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:179:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFF", 0, 0x7FFF); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:158:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed int, INT_MIN, INT_MAX, "%d", xstrtoi, str, base, i, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:179:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFF", 0, 0x7FFF); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:158:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed int, INT_MIN, INT_MAX, "%d", xstrtoi, str, base, i, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:179:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFF", 0, 0x7FFF); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:158:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed int, INT_MIN, INT_MAX, "%d", xstrtoi, str, base, i, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:179:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFF", 0, 0x7FFF); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:158:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed int, INT_MIN, INT_MAX, "%d", xstrtoi, str, base, i, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:179:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFF", 0, 0x7FFF); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:53:4: note: in expansion of macro 'bfs_diag' (bfs_diag(__VA_ARGS__)) \ ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:158:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed int, INT_MIN, INT_MAX, "%d", xstrtoi, str, base, i, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:179:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFF", 0, 0x7FFF); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:54:4: note: in expansion of macro 'bfs_diag' (bfs_diag("Check failed: `%s`", str)) ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:158:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed int, INT_MIN, INT_MAX, "%d", xstrtoi, str, base, i, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:179:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFF", 0, 0x7FFF); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:158:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed int, INT_MIN, INT_MAX, "%d", xstrtoi, str, base, i, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:179:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFF", 0, 0x7FFF); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:158:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed int, INT_MIN, INT_MAX, "%d", xstrtoi, str, base, i, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:179:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFF", 0, 0x7FFF); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:158:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed int, INT_MIN, INT_MAX, "%d", xstrtoi, str, base, i, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:179:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFF", 0, 0x7FFF); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:158:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed int, INT_MIN, INT_MAX, "%d", xstrtoi, str, base, i, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:179:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFF", 0, 0x7FFF); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:159:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long, LONG_MIN, LONG_MAX, "%ld", xstrtol, str, base, l, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:179:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFF", 0, 0x7FFF); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:159:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long, LONG_MIN, LONG_MAX, "%ld", xstrtol, str, base, l, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:179:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFF", 0, 0x7FFF); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:159:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long, LONG_MIN, LONG_MAX, "%ld", xstrtol, str, base, l, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:179:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFF", 0, 0x7FFF); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:159:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long, LONG_MIN, LONG_MAX, "%ld", xstrtol, str, base, l, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:179:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFF", 0, 0x7FFF); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:53:4: note: in expansion of macro 'bfs_diag' (bfs_diag(__VA_ARGS__)) \ ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:159:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long, LONG_MIN, LONG_MAX, "%ld", xstrtol, str, base, l, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:179:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFF", 0, 0x7FFF); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:54:4: note: in expansion of macro 'bfs_diag' (bfs_diag("Check failed: `%s`", str)) ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:159:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long, LONG_MIN, LONG_MAX, "%ld", xstrtol, str, base, l, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:179:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFF", 0, 0x7FFF); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:159:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long, LONG_MIN, LONG_MAX, "%ld", xstrtol, str, base, l, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:179:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFF", 0, 0x7FFF); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:159:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long, LONG_MIN, LONG_MAX, "%ld", xstrtol, str, base, l, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:179:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFF", 0, 0x7FFF); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:159:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long, LONG_MIN, LONG_MAX, "%ld", xstrtol, str, base, l, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:179:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFF", 0, 0x7FFF); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:159:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long, LONG_MIN, LONG_MAX, "%ld", xstrtol, str, base, l, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:179:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFF", 0, 0x7FFF); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:160:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long long, LLONG_MIN, LLONG_MAX, "%lld", xstrtoll, str, base, ll, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:179:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFF", 0, 0x7FFF); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:160:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long long, LLONG_MIN, LLONG_MAX, "%lld", xstrtoll, str, base, ll, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:179:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFF", 0, 0x7FFF); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:160:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long long, LLONG_MIN, LLONG_MAX, "%lld", xstrtoll, str, base, ll, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:179:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFF", 0, 0x7FFF); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:160:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long long, LLONG_MIN, LLONG_MAX, "%lld", xstrtoll, str, base, ll, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:179:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFF", 0, 0x7FFF); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:53:4: note: in expansion of macro 'bfs_diag' (bfs_diag(__VA_ARGS__)) \ ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:160:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long long, LLONG_MIN, LLONG_MAX, "%lld", xstrtoll, str, base, ll, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:179:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFF", 0, 0x7FFF); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:54:4: note: in expansion of macro 'bfs_diag' (bfs_diag("Check failed: `%s`", str)) ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:160:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long long, LLONG_MIN, LLONG_MAX, "%lld", xstrtoll, str, base, ll, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:179:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFF", 0, 0x7FFF); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:160:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long long, LLONG_MIN, LLONG_MAX, "%lld", xstrtoll, str, base, ll, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:179:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFF", 0, 0x7FFF); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:160:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long long, LLONG_MIN, LLONG_MAX, "%lld", xstrtoll, str, base, ll, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:179:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFF", 0, 0x7FFF); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:160:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long long, LLONG_MIN, LLONG_MAX, "%lld", xstrtoll, str, base, ll, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:179:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFF", 0, 0x7FFF); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:160:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long long, LLONG_MIN, LLONG_MAX, "%lld", xstrtoll, str, base, ll, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:179:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFF", 0, 0x7FFF); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:161:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned short, 0, USHRT_MAX, "%u", xstrtous, str, base, us, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:179:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFF", 0, 0x7FFF); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:161:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned short, 0, USHRT_MAX, "%u", xstrtous, str, base, us, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:179:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFF", 0, 0x7FFF); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:161:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned short, 0, USHRT_MAX, "%u", xstrtous, str, base, us, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:179:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFF", 0, 0x7FFF); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:161:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned short, 0, USHRT_MAX, "%u", xstrtous, str, base, us, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:179:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFF", 0, 0x7FFF); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:53:4: note: in expansion of macro 'bfs_diag' (bfs_diag(__VA_ARGS__)) \ ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:161:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned short, 0, USHRT_MAX, "%u", xstrtous, str, base, us, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:179:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFF", 0, 0x7FFF); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:54:4: note: in expansion of macro 'bfs_diag' (bfs_diag("Check failed: `%s`", str)) ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:161:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned short, 0, USHRT_MAX, "%u", xstrtous, str, base, us, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:179:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFF", 0, 0x7FFF); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:161:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned short, 0, USHRT_MAX, "%u", xstrtous, str, base, us, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:179:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFF", 0, 0x7FFF); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:161:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned short, 0, USHRT_MAX, "%u", xstrtous, str, base, us, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:179:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFF", 0, 0x7FFF); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:161:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned short, 0, USHRT_MAX, "%u", xstrtous, str, base, us, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:179:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFF", 0, 0x7FFF); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:161:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned short, 0, USHRT_MAX, "%u", xstrtous, str, base, us, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:179:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFF", 0, 0x7FFF); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:162:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned int, 0, UINT_MAX, "%u", xstrtoui, str, base, ui, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:179:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFF", 0, 0x7FFF); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:162:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned int, 0, UINT_MAX, "%u", xstrtoui, str, base, ui, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:179:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFF", 0, 0x7FFF); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:162:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned int, 0, UINT_MAX, "%u", xstrtoui, str, base, ui, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:179:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFF", 0, 0x7FFF); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:162:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned int, 0, UINT_MAX, "%u", xstrtoui, str, base, ui, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:179:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFF", 0, 0x7FFF); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:53:4: note: in expansion of macro 'bfs_diag' (bfs_diag(__VA_ARGS__)) \ ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:162:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned int, 0, UINT_MAX, "%u", xstrtoui, str, base, ui, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:179:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFF", 0, 0x7FFF); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:54:4: note: in expansion of macro 'bfs_diag' (bfs_diag("Check failed: `%s`", str)) ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:162:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned int, 0, UINT_MAX, "%u", xstrtoui, str, base, ui, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:179:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFF", 0, 0x7FFF); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:162:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned int, 0, UINT_MAX, "%u", xstrtoui, str, base, ui, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:179:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFF", 0, 0x7FFF); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:162:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned int, 0, UINT_MAX, "%u", xstrtoui, str, base, ui, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:179:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFF", 0, 0x7FFF); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:162:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned int, 0, UINT_MAX, "%u", xstrtoui, str, base, ui, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:179:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFF", 0, 0x7FFF); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:162:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned int, 0, UINT_MAX, "%u", xstrtoui, str, base, ui, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:179:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFF", 0, 0x7FFF); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:163:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long, 0, ULONG_MAX, "%lu", xstrtoul, str, base, ul, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:179:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFF", 0, 0x7FFF); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:163:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long, 0, ULONG_MAX, "%lu", xstrtoul, str, base, ul, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:179:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFF", 0, 0x7FFF); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:163:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long, 0, ULONG_MAX, "%lu", xstrtoul, str, base, ul, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:179:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFF", 0, 0x7FFF); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:163:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long, 0, ULONG_MAX, "%lu", xstrtoul, str, base, ul, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:179:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFF", 0, 0x7FFF); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:53:4: note: in expansion of macro 'bfs_diag' (bfs_diag(__VA_ARGS__)) \ ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:163:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long, 0, ULONG_MAX, "%lu", xstrtoul, str, base, ul, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:179:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFF", 0, 0x7FFF); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:54:4: note: in expansion of macro 'bfs_diag' (bfs_diag("Check failed: `%s`", str)) ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:163:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long, 0, ULONG_MAX, "%lu", xstrtoul, str, base, ul, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:179:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFF", 0, 0x7FFF); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:163:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long, 0, ULONG_MAX, "%lu", xstrtoul, str, base, ul, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:179:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFF", 0, 0x7FFF); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:163:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long, 0, ULONG_MAX, "%lu", xstrtoul, str, base, ul, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:179:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFF", 0, 0x7FFF); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:163:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long, 0, ULONG_MAX, "%lu", xstrtoul, str, base, ul, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:179:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFF", 0, 0x7FFF); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:163:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long, 0, ULONG_MAX, "%lu", xstrtoul, str, base, ul, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:179:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFF", 0, 0x7FFF); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:164:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long long, 0, ULLONG_MAX, "%llu", xstrtoull, str, base, ull, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:179:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFF", 0, 0x7FFF); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:164:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long long, 0, ULLONG_MAX, "%llu", xstrtoull, str, base, ull, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:179:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFF", 0, 0x7FFF); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:164:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long long, 0, ULLONG_MAX, "%llu", xstrtoull, str, base, ull, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:179:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFF", 0, 0x7FFF); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:164:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long long, 0, ULLONG_MAX, "%llu", xstrtoull, str, base, ull, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:179:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFF", 0, 0x7FFF); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:53:4: note: in expansion of macro 'bfs_diag' (bfs_diag(__VA_ARGS__)) \ ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:164:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long long, 0, ULLONG_MAX, "%llu", xstrtoull, str, base, ull, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:179:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFF", 0, 0x7FFF); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:54:4: note: in expansion of macro 'bfs_diag' (bfs_diag("Check failed: `%s`", str)) ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:164:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long long, 0, ULLONG_MAX, "%llu", xstrtoull, str, base, ull, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:179:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFF", 0, 0x7FFF); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:164:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long long, 0, ULLONG_MAX, "%llu", xstrtoull, str, base, ull, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:179:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFF", 0, 0x7FFF); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:164:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long long, 0, ULLONG_MAX, "%llu", xstrtoull, str, base, ull, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:179:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFF", 0, 0x7FFF); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:164:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long long, 0, ULLONG_MAX, "%llu", xstrtoull, str, base, ull, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:179:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFF", 0, 0x7FFF); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:164:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long long, 0, ULLONG_MAX, "%llu", xstrtoull, str, base, ull, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:179:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFF", 0, 0x7FFF); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:157:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed short, SHRT_MIN, SHRT_MAX, "%d", xstrtos, str, base, s, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:180:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x8000", 0, -0x8000); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:157:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed short, SHRT_MIN, SHRT_MAX, "%d", xstrtos, str, base, s, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:180:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x8000", 0, -0x8000); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:157:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed short, SHRT_MIN, SHRT_MAX, "%d", xstrtos, str, base, s, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:180:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x8000", 0, -0x8000); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:157:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed short, SHRT_MIN, SHRT_MAX, "%d", xstrtos, str, base, s, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:180:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x8000", 0, -0x8000); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:53:4: note: in expansion of macro 'bfs_diag' (bfs_diag(__VA_ARGS__)) \ ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:157:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed short, SHRT_MIN, SHRT_MAX, "%d", xstrtos, str, base, s, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:180:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x8000", 0, -0x8000); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:54:4: note: in expansion of macro 'bfs_diag' (bfs_diag("Check failed: `%s`", str)) ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:157:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed short, SHRT_MIN, SHRT_MAX, "%d", xstrtos, str, base, s, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:180:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x8000", 0, -0x8000); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:157:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed short, SHRT_MIN, SHRT_MAX, "%d", xstrtos, str, base, s, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:180:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x8000", 0, -0x8000); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:157:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed short, SHRT_MIN, SHRT_MAX, "%d", xstrtos, str, base, s, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:180:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x8000", 0, -0x8000); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:157:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed short, SHRT_MIN, SHRT_MAX, "%d", xstrtos, str, base, s, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:180:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x8000", 0, -0x8000); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:157:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed short, SHRT_MIN, SHRT_MAX, "%d", xstrtos, str, base, s, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:180:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x8000", 0, -0x8000); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:158:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed int, INT_MIN, INT_MAX, "%d", xstrtoi, str, base, i, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:180:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x8000", 0, -0x8000); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:158:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed int, INT_MIN, INT_MAX, "%d", xstrtoi, str, base, i, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:180:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x8000", 0, -0x8000); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:158:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed int, INT_MIN, INT_MAX, "%d", xstrtoi, str, base, i, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:180:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x8000", 0, -0x8000); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:158:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed int, INT_MIN, INT_MAX, "%d", xstrtoi, str, base, i, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:180:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x8000", 0, -0x8000); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:53:4: note: in expansion of macro 'bfs_diag' (bfs_diag(__VA_ARGS__)) \ ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:158:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed int, INT_MIN, INT_MAX, "%d", xstrtoi, str, base, i, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:180:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x8000", 0, -0x8000); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:54:4: note: in expansion of macro 'bfs_diag' (bfs_diag("Check failed: `%s`", str)) ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:158:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed int, INT_MIN, INT_MAX, "%d", xstrtoi, str, base, i, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:180:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x8000", 0, -0x8000); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:158:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed int, INT_MIN, INT_MAX, "%d", xstrtoi, str, base, i, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:180:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x8000", 0, -0x8000); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:158:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed int, INT_MIN, INT_MAX, "%d", xstrtoi, str, base, i, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:180:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x8000", 0, -0x8000); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:158:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed int, INT_MIN, INT_MAX, "%d", xstrtoi, str, base, i, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:180:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x8000", 0, -0x8000); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:158:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed int, INT_MIN, INT_MAX, "%d", xstrtoi, str, base, i, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:180:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x8000", 0, -0x8000); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:159:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long, LONG_MIN, LONG_MAX, "%ld", xstrtol, str, base, l, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:180:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x8000", 0, -0x8000); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:159:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long, LONG_MIN, LONG_MAX, "%ld", xstrtol, str, base, l, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:180:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x8000", 0, -0x8000); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:159:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long, LONG_MIN, LONG_MAX, "%ld", xstrtol, str, base, l, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:180:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x8000", 0, -0x8000); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:159:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long, LONG_MIN, LONG_MAX, "%ld", xstrtol, str, base, l, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:180:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x8000", 0, -0x8000); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:53:4: note: in expansion of macro 'bfs_diag' (bfs_diag(__VA_ARGS__)) \ ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:159:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long, LONG_MIN, LONG_MAX, "%ld", xstrtol, str, base, l, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:180:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x8000", 0, -0x8000); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:54:4: note: in expansion of macro 'bfs_diag' (bfs_diag("Check failed: `%s`", str)) ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:159:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long, LONG_MIN, LONG_MAX, "%ld", xstrtol, str, base, l, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:180:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x8000", 0, -0x8000); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:159:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long, LONG_MIN, LONG_MAX, "%ld", xstrtol, str, base, l, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:180:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x8000", 0, -0x8000); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:159:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long, LONG_MIN, LONG_MAX, "%ld", xstrtol, str, base, l, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:180:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x8000", 0, -0x8000); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:159:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long, LONG_MIN, LONG_MAX, "%ld", xstrtol, str, base, l, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:180:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x8000", 0, -0x8000); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:159:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long, LONG_MIN, LONG_MAX, "%ld", xstrtol, str, base, l, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:180:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x8000", 0, -0x8000); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:160:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long long, LLONG_MIN, LLONG_MAX, "%lld", xstrtoll, str, base, ll, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:180:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x8000", 0, -0x8000); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:160:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long long, LLONG_MIN, LLONG_MAX, "%lld", xstrtoll, str, base, ll, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:180:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x8000", 0, -0x8000); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:160:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long long, LLONG_MIN, LLONG_MAX, "%lld", xstrtoll, str, base, ll, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:180:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x8000", 0, -0x8000); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:160:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long long, LLONG_MIN, LLONG_MAX, "%lld", xstrtoll, str, base, ll, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:180:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x8000", 0, -0x8000); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:53:4: note: in expansion of macro 'bfs_diag' (bfs_diag(__VA_ARGS__)) \ ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:160:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long long, LLONG_MIN, LLONG_MAX, "%lld", xstrtoll, str, base, ll, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:180:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x8000", 0, -0x8000); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:54:4: note: in expansion of macro 'bfs_diag' (bfs_diag("Check failed: `%s`", str)) ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:160:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long long, LLONG_MIN, LLONG_MAX, "%lld", xstrtoll, str, base, ll, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:180:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x8000", 0, -0x8000); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:160:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long long, LLONG_MIN, LLONG_MAX, "%lld", xstrtoll, str, base, ll, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:180:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x8000", 0, -0x8000); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:160:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long long, LLONG_MIN, LLONG_MAX, "%lld", xstrtoll, str, base, ll, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:180:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x8000", 0, -0x8000); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:160:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long long, LLONG_MIN, LLONG_MAX, "%lld", xstrtoll, str, base, ll, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:180:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x8000", 0, -0x8000); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:160:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long long, LLONG_MIN, LLONG_MAX, "%lld", xstrtoll, str, base, ll, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:180:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x8000", 0, -0x8000); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:161:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned short, 0, USHRT_MAX, "%u", xstrtous, str, base, us, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:180:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x8000", 0, -0x8000); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:161:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned short, 0, USHRT_MAX, "%u", xstrtous, str, base, us, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:180:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x8000", 0, -0x8000); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:161:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned short, 0, USHRT_MAX, "%u", xstrtous, str, base, us, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:180:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x8000", 0, -0x8000); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:161:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned short, 0, USHRT_MAX, "%u", xstrtous, str, base, us, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:180:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x8000", 0, -0x8000); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:53:4: note: in expansion of macro 'bfs_diag' (bfs_diag(__VA_ARGS__)) \ ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:161:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned short, 0, USHRT_MAX, "%u", xstrtous, str, base, us, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:180:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x8000", 0, -0x8000); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:54:4: note: in expansion of macro 'bfs_diag' (bfs_diag("Check failed: `%s`", str)) ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:161:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned short, 0, USHRT_MAX, "%u", xstrtous, str, base, us, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:180:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x8000", 0, -0x8000); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:161:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned short, 0, USHRT_MAX, "%u", xstrtous, str, base, us, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:180:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x8000", 0, -0x8000); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:161:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned short, 0, USHRT_MAX, "%u", xstrtous, str, base, us, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:180:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x8000", 0, -0x8000); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:161:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned short, 0, USHRT_MAX, "%u", xstrtous, str, base, us, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:180:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x8000", 0, -0x8000); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:161:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned short, 0, USHRT_MAX, "%u", xstrtous, str, base, us, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:180:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x8000", 0, -0x8000); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:162:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned int, 0, UINT_MAX, "%u", xstrtoui, str, base, ui, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:180:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x8000", 0, -0x8000); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:162:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned int, 0, UINT_MAX, "%u", xstrtoui, str, base, ui, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:180:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x8000", 0, -0x8000); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:162:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned int, 0, UINT_MAX, "%u", xstrtoui, str, base, ui, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:180:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x8000", 0, -0x8000); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:162:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned int, 0, UINT_MAX, "%u", xstrtoui, str, base, ui, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:180:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x8000", 0, -0x8000); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:53:4: note: in expansion of macro 'bfs_diag' (bfs_diag(__VA_ARGS__)) \ ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:162:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned int, 0, UINT_MAX, "%u", xstrtoui, str, base, ui, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:180:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x8000", 0, -0x8000); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:54:4: note: in expansion of macro 'bfs_diag' (bfs_diag("Check failed: `%s`", str)) ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:162:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned int, 0, UINT_MAX, "%u", xstrtoui, str, base, ui, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:180:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x8000", 0, -0x8000); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:162:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned int, 0, UINT_MAX, "%u", xstrtoui, str, base, ui, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:180:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x8000", 0, -0x8000); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:162:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned int, 0, UINT_MAX, "%u", xstrtoui, str, base, ui, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:180:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x8000", 0, -0x8000); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:162:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned int, 0, UINT_MAX, "%u", xstrtoui, str, base, ui, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:180:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x8000", 0, -0x8000); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:162:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned int, 0, UINT_MAX, "%u", xstrtoui, str, base, ui, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:180:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x8000", 0, -0x8000); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:163:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long, 0, ULONG_MAX, "%lu", xstrtoul, str, base, ul, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:180:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x8000", 0, -0x8000); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:163:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long, 0, ULONG_MAX, "%lu", xstrtoul, str, base, ul, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:180:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x8000", 0, -0x8000); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:163:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long, 0, ULONG_MAX, "%lu", xstrtoul, str, base, ul, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:180:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x8000", 0, -0x8000); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:163:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long, 0, ULONG_MAX, "%lu", xstrtoul, str, base, ul, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:180:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x8000", 0, -0x8000); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:53:4: note: in expansion of macro 'bfs_diag' (bfs_diag(__VA_ARGS__)) \ ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:163:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long, 0, ULONG_MAX, "%lu", xstrtoul, str, base, ul, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:180:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x8000", 0, -0x8000); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:54:4: note: in expansion of macro 'bfs_diag' (bfs_diag("Check failed: `%s`", str)) ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:163:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long, 0, ULONG_MAX, "%lu", xstrtoul, str, base, ul, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:180:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x8000", 0, -0x8000); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:163:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long, 0, ULONG_MAX, "%lu", xstrtoul, str, base, ul, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:180:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x8000", 0, -0x8000); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:163:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long, 0, ULONG_MAX, "%lu", xstrtoul, str, base, ul, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:180:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x8000", 0, -0x8000); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:163:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long, 0, ULONG_MAX, "%lu", xstrtoul, str, base, ul, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:180:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x8000", 0, -0x8000); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:163:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long, 0, ULONG_MAX, "%lu", xstrtoul, str, base, ul, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:180:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x8000", 0, -0x8000); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:164:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long long, 0, ULLONG_MAX, "%llu", xstrtoull, str, base, ull, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:180:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x8000", 0, -0x8000); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:164:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long long, 0, ULLONG_MAX, "%llu", xstrtoull, str, base, ull, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:180:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x8000", 0, -0x8000); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:164:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long long, 0, ULLONG_MAX, "%llu", xstrtoull, str, base, ull, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:180:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x8000", 0, -0x8000); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:164:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long long, 0, ULLONG_MAX, "%llu", xstrtoull, str, base, ull, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:180:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x8000", 0, -0x8000); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:53:4: note: in expansion of macro 'bfs_diag' (bfs_diag(__VA_ARGS__)) \ ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:164:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long long, 0, ULLONG_MAX, "%llu", xstrtoull, str, base, ull, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:180:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x8000", 0, -0x8000); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:54:4: note: in expansion of macro 'bfs_diag' (bfs_diag("Check failed: `%s`", str)) ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:164:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long long, 0, ULLONG_MAX, "%llu", xstrtoull, str, base, ull, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:180:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x8000", 0, -0x8000); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:164:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long long, 0, ULLONG_MAX, "%llu", xstrtoull, str, base, ull, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:180:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x8000", 0, -0x8000); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:164:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long long, 0, ULLONG_MAX, "%llu", xstrtoull, str, base, ull, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:180:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x8000", 0, -0x8000); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:164:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long long, 0, ULLONG_MAX, "%llu", xstrtoull, str, base, ull, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:180:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x8000", 0, -0x8000); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:164:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long long, 0, ULLONG_MAX, "%llu", xstrtoull, str, base, ull, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:180:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x8000", 0, -0x8000); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:157:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed short, SHRT_MIN, SHRT_MAX, "%d", xstrtos, str, base, s, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:182:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFFFFFF", 0, 0x7FFFFFFFL); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:157:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed short, SHRT_MIN, SHRT_MAX, "%d", xstrtos, str, base, s, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:182:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFFFFFF", 0, 0x7FFFFFFFL); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:157:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed short, SHRT_MIN, SHRT_MAX, "%d", xstrtos, str, base, s, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:182:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFFFFFF", 0, 0x7FFFFFFFL); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:157:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed short, SHRT_MIN, SHRT_MAX, "%d", xstrtos, str, base, s, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:182:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFFFFFF", 0, 0x7FFFFFFFL); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:53:4: note: in expansion of macro 'bfs_diag' (bfs_diag(__VA_ARGS__)) \ ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:157:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed short, SHRT_MIN, SHRT_MAX, "%d", xstrtos, str, base, s, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:182:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFFFFFF", 0, 0x7FFFFFFFL); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:54:4: note: in expansion of macro 'bfs_diag' (bfs_diag("Check failed: `%s`", str)) ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:157:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed short, SHRT_MIN, SHRT_MAX, "%d", xstrtos, str, base, s, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:182:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFFFFFF", 0, 0x7FFFFFFFL); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:157:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed short, SHRT_MIN, SHRT_MAX, "%d", xstrtos, str, base, s, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:182:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFFFFFF", 0, 0x7FFFFFFFL); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:157:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed short, SHRT_MIN, SHRT_MAX, "%d", xstrtos, str, base, s, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:182:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFFFFFF", 0, 0x7FFFFFFFL); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:157:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed short, SHRT_MIN, SHRT_MAX, "%d", xstrtos, str, base, s, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:182:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFFFFFF", 0, 0x7FFFFFFFL); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:157:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed short, SHRT_MIN, SHRT_MAX, "%d", xstrtos, str, base, s, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:182:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFFFFFF", 0, 0x7FFFFFFFL); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:158:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed int, INT_MIN, INT_MAX, "%d", xstrtoi, str, base, i, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:182:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFFFFFF", 0, 0x7FFFFFFFL); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:158:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed int, INT_MIN, INT_MAX, "%d", xstrtoi, str, base, i, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:182:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFFFFFF", 0, 0x7FFFFFFFL); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:158:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed int, INT_MIN, INT_MAX, "%d", xstrtoi, str, base, i, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:182:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFFFFFF", 0, 0x7FFFFFFFL); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:158:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed int, INT_MIN, INT_MAX, "%d", xstrtoi, str, base, i, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:182:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFFFFFF", 0, 0x7FFFFFFFL); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:53:4: note: in expansion of macro 'bfs_diag' (bfs_diag(__VA_ARGS__)) \ ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:158:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed int, INT_MIN, INT_MAX, "%d", xstrtoi, str, base, i, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:182:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFFFFFF", 0, 0x7FFFFFFFL); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:54:4: note: in expansion of macro 'bfs_diag' (bfs_diag("Check failed: `%s`", str)) ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:158:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed int, INT_MIN, INT_MAX, "%d", xstrtoi, str, base, i, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:182:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFFFFFF", 0, 0x7FFFFFFFL); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:158:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed int, INT_MIN, INT_MAX, "%d", xstrtoi, str, base, i, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:182:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFFFFFF", 0, 0x7FFFFFFFL); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:158:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed int, INT_MIN, INT_MAX, "%d", xstrtoi, str, base, i, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:182:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFFFFFF", 0, 0x7FFFFFFFL); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:158:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed int, INT_MIN, INT_MAX, "%d", xstrtoi, str, base, i, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:182:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFFFFFF", 0, 0x7FFFFFFFL); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:158:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed int, INT_MIN, INT_MAX, "%d", xstrtoi, str, base, i, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:182:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFFFFFF", 0, 0x7FFFFFFFL); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:159:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long, LONG_MIN, LONG_MAX, "%ld", xstrtol, str, base, l, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:182:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFFFFFF", 0, 0x7FFFFFFFL); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:159:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long, LONG_MIN, LONG_MAX, "%ld", xstrtol, str, base, l, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:182:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFFFFFF", 0, 0x7FFFFFFFL); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:159:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long, LONG_MIN, LONG_MAX, "%ld", xstrtol, str, base, l, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:182:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFFFFFF", 0, 0x7FFFFFFFL); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:159:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long, LONG_MIN, LONG_MAX, "%ld", xstrtol, str, base, l, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:182:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFFFFFF", 0, 0x7FFFFFFFL); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:53:4: note: in expansion of macro 'bfs_diag' (bfs_diag(__VA_ARGS__)) \ ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:159:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long, LONG_MIN, LONG_MAX, "%ld", xstrtol, str, base, l, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:182:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFFFFFF", 0, 0x7FFFFFFFL); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:54:4: note: in expansion of macro 'bfs_diag' (bfs_diag("Check failed: `%s`", str)) ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:159:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long, LONG_MIN, LONG_MAX, "%ld", xstrtol, str, base, l, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:182:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFFFFFF", 0, 0x7FFFFFFFL); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:159:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long, LONG_MIN, LONG_MAX, "%ld", xstrtol, str, base, l, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:182:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFFFFFF", 0, 0x7FFFFFFFL); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:159:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long, LONG_MIN, LONG_MAX, "%ld", xstrtol, str, base, l, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:182:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFFFFFF", 0, 0x7FFFFFFFL); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:159:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long, LONG_MIN, LONG_MAX, "%ld", xstrtol, str, base, l, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:182:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFFFFFF", 0, 0x7FFFFFFFL); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:159:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long, LONG_MIN, LONG_MAX, "%ld", xstrtol, str, base, l, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:182:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFFFFFF", 0, 0x7FFFFFFFL); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:160:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long long, LLONG_MIN, LLONG_MAX, "%lld", xstrtoll, str, base, ll, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:182:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFFFFFF", 0, 0x7FFFFFFFL); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:160:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long long, LLONG_MIN, LLONG_MAX, "%lld", xstrtoll, str, base, ll, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:182:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFFFFFF", 0, 0x7FFFFFFFL); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:160:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long long, LLONG_MIN, LLONG_MAX, "%lld", xstrtoll, str, base, ll, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:182:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFFFFFF", 0, 0x7FFFFFFFL); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:160:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long long, LLONG_MIN, LLONG_MAX, "%lld", xstrtoll, str, base, ll, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:182:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFFFFFF", 0, 0x7FFFFFFFL); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:53:4: note: in expansion of macro 'bfs_diag' (bfs_diag(__VA_ARGS__)) \ ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:160:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long long, LLONG_MIN, LLONG_MAX, "%lld", xstrtoll, str, base, ll, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:182:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFFFFFF", 0, 0x7FFFFFFFL); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:54:4: note: in expansion of macro 'bfs_diag' (bfs_diag("Check failed: `%s`", str)) ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:160:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long long, LLONG_MIN, LLONG_MAX, "%lld", xstrtoll, str, base, ll, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:182:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFFFFFF", 0, 0x7FFFFFFFL); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:160:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long long, LLONG_MIN, LLONG_MAX, "%lld", xstrtoll, str, base, ll, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:182:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFFFFFF", 0, 0x7FFFFFFFL); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:160:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long long, LLONG_MIN, LLONG_MAX, "%lld", xstrtoll, str, base, ll, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:182:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFFFFFF", 0, 0x7FFFFFFFL); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:160:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long long, LLONG_MIN, LLONG_MAX, "%lld", xstrtoll, str, base, ll, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:182:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFFFFFF", 0, 0x7FFFFFFFL); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:160:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long long, LLONG_MIN, LLONG_MAX, "%lld", xstrtoll, str, base, ll, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:182:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFFFFFF", 0, 0x7FFFFFFFL); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:161:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned short, 0, USHRT_MAX, "%u", xstrtous, str, base, us, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:182:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFFFFFF", 0, 0x7FFFFFFFL); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:161:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned short, 0, USHRT_MAX, "%u", xstrtous, str, base, us, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:182:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFFFFFF", 0, 0x7FFFFFFFL); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:161:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned short, 0, USHRT_MAX, "%u", xstrtous, str, base, us, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:182:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFFFFFF", 0, 0x7FFFFFFFL); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:161:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned short, 0, USHRT_MAX, "%u", xstrtous, str, base, us, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:182:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFFFFFF", 0, 0x7FFFFFFFL); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:53:4: note: in expansion of macro 'bfs_diag' (bfs_diag(__VA_ARGS__)) \ ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:161:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned short, 0, USHRT_MAX, "%u", xstrtous, str, base, us, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:182:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFFFFFF", 0, 0x7FFFFFFFL); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:54:4: note: in expansion of macro 'bfs_diag' (bfs_diag("Check failed: `%s`", str)) ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:161:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned short, 0, USHRT_MAX, "%u", xstrtous, str, base, us, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:182:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFFFFFF", 0, 0x7FFFFFFFL); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:161:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned short, 0, USHRT_MAX, "%u", xstrtous, str, base, us, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:182:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFFFFFF", 0, 0x7FFFFFFFL); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:161:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned short, 0, USHRT_MAX, "%u", xstrtous, str, base, us, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:182:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFFFFFF", 0, 0x7FFFFFFFL); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:161:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned short, 0, USHRT_MAX, "%u", xstrtous, str, base, us, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:182:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFFFFFF", 0, 0x7FFFFFFFL); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:161:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned short, 0, USHRT_MAX, "%u", xstrtous, str, base, us, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:182:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFFFFFF", 0, 0x7FFFFFFFL); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:162:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned int, 0, UINT_MAX, "%u", xstrtoui, str, base, ui, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:182:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFFFFFF", 0, 0x7FFFFFFFL); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:162:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned int, 0, UINT_MAX, "%u", xstrtoui, str, base, ui, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:182:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFFFFFF", 0, 0x7FFFFFFFL); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:162:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned int, 0, UINT_MAX, "%u", xstrtoui, str, base, ui, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:182:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFFFFFF", 0, 0x7FFFFFFFL); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:162:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned int, 0, UINT_MAX, "%u", xstrtoui, str, base, ui, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:182:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFFFFFF", 0, 0x7FFFFFFFL); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:53:4: note: in expansion of macro 'bfs_diag' (bfs_diag(__VA_ARGS__)) \ ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:162:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned int, 0, UINT_MAX, "%u", xstrtoui, str, base, ui, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:182:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFFFFFF", 0, 0x7FFFFFFFL); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:54:4: note: in expansion of macro 'bfs_diag' (bfs_diag("Check failed: `%s`", str)) ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:162:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned int, 0, UINT_MAX, "%u", xstrtoui, str, base, ui, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:182:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFFFFFF", 0, 0x7FFFFFFFL); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:162:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned int, 0, UINT_MAX, "%u", xstrtoui, str, base, ui, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:182:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFFFFFF", 0, 0x7FFFFFFFL); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:162:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned int, 0, UINT_MAX, "%u", xstrtoui, str, base, ui, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:182:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFFFFFF", 0, 0x7FFFFFFFL); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:162:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned int, 0, UINT_MAX, "%u", xstrtoui, str, base, ui, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:182:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFFFFFF", 0, 0x7FFFFFFFL); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:162:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned int, 0, UINT_MAX, "%u", xstrtoui, str, base, ui, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:182:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFFFFFF", 0, 0x7FFFFFFFL); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:163:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long, 0, ULONG_MAX, "%lu", xstrtoul, str, base, ul, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:182:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFFFFFF", 0, 0x7FFFFFFFL); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:163:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long, 0, ULONG_MAX, "%lu", xstrtoul, str, base, ul, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:182:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFFFFFF", 0, 0x7FFFFFFFL); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:163:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long, 0, ULONG_MAX, "%lu", xstrtoul, str, base, ul, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:182:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFFFFFF", 0, 0x7FFFFFFFL); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:163:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long, 0, ULONG_MAX, "%lu", xstrtoul, str, base, ul, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:182:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFFFFFF", 0, 0x7FFFFFFFL); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:53:4: note: in expansion of macro 'bfs_diag' (bfs_diag(__VA_ARGS__)) \ ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:163:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long, 0, ULONG_MAX, "%lu", xstrtoul, str, base, ul, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:182:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFFFFFF", 0, 0x7FFFFFFFL); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:54:4: note: in expansion of macro 'bfs_diag' (bfs_diag("Check failed: `%s`", str)) ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:163:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long, 0, ULONG_MAX, "%lu", xstrtoul, str, base, ul, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:182:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFFFFFF", 0, 0x7FFFFFFFL); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:163:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long, 0, ULONG_MAX, "%lu", xstrtoul, str, base, ul, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:182:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFFFFFF", 0, 0x7FFFFFFFL); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:163:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long, 0, ULONG_MAX, "%lu", xstrtoul, str, base, ul, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:182:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFFFFFF", 0, 0x7FFFFFFFL); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:163:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long, 0, ULONG_MAX, "%lu", xstrtoul, str, base, ul, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:182:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFFFFFF", 0, 0x7FFFFFFFL); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:163:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long, 0, ULONG_MAX, "%lu", xstrtoul, str, base, ul, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:182:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFFFFFF", 0, 0x7FFFFFFFL); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:164:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long long, 0, ULLONG_MAX, "%llu", xstrtoull, str, base, ull, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:182:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFFFFFF", 0, 0x7FFFFFFFL); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:164:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long long, 0, ULLONG_MAX, "%llu", xstrtoull, str, base, ull, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:182:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFFFFFF", 0, 0x7FFFFFFFL); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:164:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long long, 0, ULLONG_MAX, "%llu", xstrtoull, str, base, ull, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:182:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFFFFFF", 0, 0x7FFFFFFFL); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:164:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long long, 0, ULLONG_MAX, "%llu", xstrtoull, str, base, ull, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:182:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFFFFFF", 0, 0x7FFFFFFFL); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:53:4: note: in expansion of macro 'bfs_diag' (bfs_diag(__VA_ARGS__)) \ ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:164:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long long, 0, ULLONG_MAX, "%llu", xstrtoull, str, base, ull, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:182:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFFFFFF", 0, 0x7FFFFFFFL); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:54:4: note: in expansion of macro 'bfs_diag' (bfs_diag("Check failed: `%s`", str)) ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:164:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long long, 0, ULLONG_MAX, "%llu", xstrtoull, str, base, ull, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:182:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFFFFFF", 0, 0x7FFFFFFFL); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:164:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long long, 0, ULLONG_MAX, "%llu", xstrtoull, str, base, ull, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:182:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFFFFFF", 0, 0x7FFFFFFFL); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:164:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long long, 0, ULLONG_MAX, "%llu", xstrtoull, str, base, ull, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:182:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFFFFFF", 0, 0x7FFFFFFFL); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:164:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long long, 0, ULLONG_MAX, "%llu", xstrtoull, str, base, ull, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:182:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFFFFFF", 0, 0x7FFFFFFFL); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:164:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long long, 0, ULLONG_MAX, "%llu", xstrtoull, str, base, ull, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:182:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFFFFFF", 0, 0x7FFFFFFFL); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:157:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed short, SHRT_MIN, SHRT_MAX, "%d", xstrtos, str, base, s, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:183:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x80000000", 0, -0x7FFFFFFFL - 1); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:157:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed short, SHRT_MIN, SHRT_MAX, "%d", xstrtos, str, base, s, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:183:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x80000000", 0, -0x7FFFFFFFL - 1); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:157:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed short, SHRT_MIN, SHRT_MAX, "%d", xstrtos, str, base, s, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:183:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x80000000", 0, -0x7FFFFFFFL - 1); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:157:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed short, SHRT_MIN, SHRT_MAX, "%d", xstrtos, str, base, s, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:183:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x80000000", 0, -0x7FFFFFFFL - 1); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:53:4: note: in expansion of macro 'bfs_diag' (bfs_diag(__VA_ARGS__)) \ ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:157:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed short, SHRT_MIN, SHRT_MAX, "%d", xstrtos, str, base, s, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:183:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x80000000", 0, -0x7FFFFFFFL - 1); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:54:4: note: in expansion of macro 'bfs_diag' (bfs_diag("Check failed: `%s`", str)) ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:157:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed short, SHRT_MIN, SHRT_MAX, "%d", xstrtos, str, base, s, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:183:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x80000000", 0, -0x7FFFFFFFL - 1); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:157:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed short, SHRT_MIN, SHRT_MAX, "%d", xstrtos, str, base, s, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:183:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x80000000", 0, -0x7FFFFFFFL - 1); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:157:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed short, SHRT_MIN, SHRT_MAX, "%d", xstrtos, str, base, s, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:183:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x80000000", 0, -0x7FFFFFFFL - 1); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:157:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed short, SHRT_MIN, SHRT_MAX, "%d", xstrtos, str, base, s, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:183:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x80000000", 0, -0x7FFFFFFFL - 1); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:157:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed short, SHRT_MIN, SHRT_MAX, "%d", xstrtos, str, base, s, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:183:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x80000000", 0, -0x7FFFFFFFL - 1); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:158:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed int, INT_MIN, INT_MAX, "%d", xstrtoi, str, base, i, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:183:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x80000000", 0, -0x7FFFFFFFL - 1); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:158:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed int, INT_MIN, INT_MAX, "%d", xstrtoi, str, base, i, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:183:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x80000000", 0, -0x7FFFFFFFL - 1); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:158:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed int, INT_MIN, INT_MAX, "%d", xstrtoi, str, base, i, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:183:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x80000000", 0, -0x7FFFFFFFL - 1); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:158:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed int, INT_MIN, INT_MAX, "%d", xstrtoi, str, base, i, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:183:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x80000000", 0, -0x7FFFFFFFL - 1); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:53:4: note: in expansion of macro 'bfs_diag' (bfs_diag(__VA_ARGS__)) \ ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:158:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed int, INT_MIN, INT_MAX, "%d", xstrtoi, str, base, i, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:183:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x80000000", 0, -0x7FFFFFFFL - 1); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:54:4: note: in expansion of macro 'bfs_diag' (bfs_diag("Check failed: `%s`", str)) ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:158:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed int, INT_MIN, INT_MAX, "%d", xstrtoi, str, base, i, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:183:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x80000000", 0, -0x7FFFFFFFL - 1); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:158:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed int, INT_MIN, INT_MAX, "%d", xstrtoi, str, base, i, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:183:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x80000000", 0, -0x7FFFFFFFL - 1); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:158:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed int, INT_MIN, INT_MAX, "%d", xstrtoi, str, base, i, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:183:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x80000000", 0, -0x7FFFFFFFL - 1); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:158:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed int, INT_MIN, INT_MAX, "%d", xstrtoi, str, base, i, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:183:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x80000000", 0, -0x7FFFFFFFL - 1); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:158:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed int, INT_MIN, INT_MAX, "%d", xstrtoi, str, base, i, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:183:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x80000000", 0, -0x7FFFFFFFL - 1); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:159:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long, LONG_MIN, LONG_MAX, "%ld", xstrtol, str, base, l, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:183:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x80000000", 0, -0x7FFFFFFFL - 1); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:159:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long, LONG_MIN, LONG_MAX, "%ld", xstrtol, str, base, l, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:183:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x80000000", 0, -0x7FFFFFFFL - 1); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:159:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long, LONG_MIN, LONG_MAX, "%ld", xstrtol, str, base, l, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:183:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x80000000", 0, -0x7FFFFFFFL - 1); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:159:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long, LONG_MIN, LONG_MAX, "%ld", xstrtol, str, base, l, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:183:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x80000000", 0, -0x7FFFFFFFL - 1); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:53:4: note: in expansion of macro 'bfs_diag' (bfs_diag(__VA_ARGS__)) \ ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:159:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long, LONG_MIN, LONG_MAX, "%ld", xstrtol, str, base, l, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:183:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x80000000", 0, -0x7FFFFFFFL - 1); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:54:4: note: in expansion of macro 'bfs_diag' (bfs_diag("Check failed: `%s`", str)) ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:159:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long, LONG_MIN, LONG_MAX, "%ld", xstrtol, str, base, l, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:183:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x80000000", 0, -0x7FFFFFFFL - 1); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:159:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long, LONG_MIN, LONG_MAX, "%ld", xstrtol, str, base, l, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:183:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x80000000", 0, -0x7FFFFFFFL - 1); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:159:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long, LONG_MIN, LONG_MAX, "%ld", xstrtol, str, base, l, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:183:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x80000000", 0, -0x7FFFFFFFL - 1); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:159:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long, LONG_MIN, LONG_MAX, "%ld", xstrtol, str, base, l, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:183:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x80000000", 0, -0x7FFFFFFFL - 1); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:159:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long, LONG_MIN, LONG_MAX, "%ld", xstrtol, str, base, l, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:183:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x80000000", 0, -0x7FFFFFFFL - 1); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:160:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long long, LLONG_MIN, LLONG_MAX, "%lld", xstrtoll, str, base, ll, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:183:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x80000000", 0, -0x7FFFFFFFL - 1); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:160:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long long, LLONG_MIN, LLONG_MAX, "%lld", xstrtoll, str, base, ll, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:183:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x80000000", 0, -0x7FFFFFFFL - 1); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:160:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long long, LLONG_MIN, LLONG_MAX, "%lld", xstrtoll, str, base, ll, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:183:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x80000000", 0, -0x7FFFFFFFL - 1); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:160:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long long, LLONG_MIN, LLONG_MAX, "%lld", xstrtoll, str, base, ll, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:183:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x80000000", 0, -0x7FFFFFFFL - 1); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:53:4: note: in expansion of macro 'bfs_diag' (bfs_diag(__VA_ARGS__)) \ ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:160:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long long, LLONG_MIN, LLONG_MAX, "%lld", xstrtoll, str, base, ll, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:183:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x80000000", 0, -0x7FFFFFFFL - 1); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:54:4: note: in expansion of macro 'bfs_diag' (bfs_diag("Check failed: `%s`", str)) ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:160:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long long, LLONG_MIN, LLONG_MAX, "%lld", xstrtoll, str, base, ll, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:183:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x80000000", 0, -0x7FFFFFFFL - 1); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:160:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long long, LLONG_MIN, LLONG_MAX, "%lld", xstrtoll, str, base, ll, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:183:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x80000000", 0, -0x7FFFFFFFL - 1); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:160:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long long, LLONG_MIN, LLONG_MAX, "%lld", xstrtoll, str, base, ll, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:183:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x80000000", 0, -0x7FFFFFFFL - 1); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:160:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long long, LLONG_MIN, LLONG_MAX, "%lld", xstrtoll, str, base, ll, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:183:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x80000000", 0, -0x7FFFFFFFL - 1); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:160:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long long, LLONG_MIN, LLONG_MAX, "%lld", xstrtoll, str, base, ll, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:183:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x80000000", 0, -0x7FFFFFFFL - 1); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:161:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned short, 0, USHRT_MAX, "%u", xstrtous, str, base, us, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:183:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x80000000", 0, -0x7FFFFFFFL - 1); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:161:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned short, 0, USHRT_MAX, "%u", xstrtous, str, base, us, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:183:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x80000000", 0, -0x7FFFFFFFL - 1); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:161:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned short, 0, USHRT_MAX, "%u", xstrtous, str, base, us, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:183:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x80000000", 0, -0x7FFFFFFFL - 1); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:161:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned short, 0, USHRT_MAX, "%u", xstrtous, str, base, us, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:183:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x80000000", 0, -0x7FFFFFFFL - 1); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:53:4: note: in expansion of macro 'bfs_diag' (bfs_diag(__VA_ARGS__)) \ ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:161:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned short, 0, USHRT_MAX, "%u", xstrtous, str, base, us, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:183:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x80000000", 0, -0x7FFFFFFFL - 1); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:54:4: note: in expansion of macro 'bfs_diag' (bfs_diag("Check failed: `%s`", str)) ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:161:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned short, 0, USHRT_MAX, "%u", xstrtous, str, base, us, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:183:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x80000000", 0, -0x7FFFFFFFL - 1); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:161:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned short, 0, USHRT_MAX, "%u", xstrtous, str, base, us, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:183:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x80000000", 0, -0x7FFFFFFFL - 1); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:161:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned short, 0, USHRT_MAX, "%u", xstrtous, str, base, us, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:183:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x80000000", 0, -0x7FFFFFFFL - 1); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:161:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned short, 0, USHRT_MAX, "%u", xstrtous, str, base, us, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:183:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x80000000", 0, -0x7FFFFFFFL - 1); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:161:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned short, 0, USHRT_MAX, "%u", xstrtous, str, base, us, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:183:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x80000000", 0, -0x7FFFFFFFL - 1); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:162:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned int, 0, UINT_MAX, "%u", xstrtoui, str, base, ui, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:183:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x80000000", 0, -0x7FFFFFFFL - 1); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:162:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned int, 0, UINT_MAX, "%u", xstrtoui, str, base, ui, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:183:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x80000000", 0, -0x7FFFFFFFL - 1); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:162:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned int, 0, UINT_MAX, "%u", xstrtoui, str, base, ui, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:183:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x80000000", 0, -0x7FFFFFFFL - 1); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:162:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned int, 0, UINT_MAX, "%u", xstrtoui, str, base, ui, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:183:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x80000000", 0, -0x7FFFFFFFL - 1); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:53:4: note: in expansion of macro 'bfs_diag' (bfs_diag(__VA_ARGS__)) \ ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:162:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned int, 0, UINT_MAX, "%u", xstrtoui, str, base, ui, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:183:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x80000000", 0, -0x7FFFFFFFL - 1); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:54:4: note: in expansion of macro 'bfs_diag' (bfs_diag("Check failed: `%s`", str)) ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:162:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned int, 0, UINT_MAX, "%u", xstrtoui, str, base, ui, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:183:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x80000000", 0, -0x7FFFFFFFL - 1); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:162:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned int, 0, UINT_MAX, "%u", xstrtoui, str, base, ui, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:183:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x80000000", 0, -0x7FFFFFFFL - 1); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:162:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned int, 0, UINT_MAX, "%u", xstrtoui, str, base, ui, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:183:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x80000000", 0, -0x7FFFFFFFL - 1); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:162:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned int, 0, UINT_MAX, "%u", xstrtoui, str, base, ui, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:183:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x80000000", 0, -0x7FFFFFFFL - 1); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:162:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned int, 0, UINT_MAX, "%u", xstrtoui, str, base, ui, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:183:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x80000000", 0, -0x7FFFFFFFL - 1); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:163:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long, 0, ULONG_MAX, "%lu", xstrtoul, str, base, ul, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:183:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x80000000", 0, -0x7FFFFFFFL - 1); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:163:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long, 0, ULONG_MAX, "%lu", xstrtoul, str, base, ul, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:183:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x80000000", 0, -0x7FFFFFFFL - 1); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:163:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long, 0, ULONG_MAX, "%lu", xstrtoul, str, base, ul, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:183:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x80000000", 0, -0x7FFFFFFFL - 1); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:163:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long, 0, ULONG_MAX, "%lu", xstrtoul, str, base, ul, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:183:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x80000000", 0, -0x7FFFFFFFL - 1); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:53:4: note: in expansion of macro 'bfs_diag' (bfs_diag(__VA_ARGS__)) \ ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:163:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long, 0, ULONG_MAX, "%lu", xstrtoul, str, base, ul, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:183:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x80000000", 0, -0x7FFFFFFFL - 1); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:54:4: note: in expansion of macro 'bfs_diag' (bfs_diag("Check failed: `%s`", str)) ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:163:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long, 0, ULONG_MAX, "%lu", xstrtoul, str, base, ul, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:183:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x80000000", 0, -0x7FFFFFFFL - 1); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:163:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long, 0, ULONG_MAX, "%lu", xstrtoul, str, base, ul, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:183:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x80000000", 0, -0x7FFFFFFFL - 1); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:163:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long, 0, ULONG_MAX, "%lu", xstrtoul, str, base, ul, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:183:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x80000000", 0, -0x7FFFFFFFL - 1); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:163:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long, 0, ULONG_MAX, "%lu", xstrtoul, str, base, ul, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:183:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x80000000", 0, -0x7FFFFFFFL - 1); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:163:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long, 0, ULONG_MAX, "%lu", xstrtoul, str, base, ul, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:183:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x80000000", 0, -0x7FFFFFFFL - 1); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:164:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long long, 0, ULLONG_MAX, "%llu", xstrtoull, str, base, ull, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:183:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x80000000", 0, -0x7FFFFFFFL - 1); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:164:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long long, 0, ULLONG_MAX, "%llu", xstrtoull, str, base, ull, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:183:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x80000000", 0, -0x7FFFFFFFL - 1); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:164:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long long, 0, ULLONG_MAX, "%llu", xstrtoull, str, base, ull, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:183:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x80000000", 0, -0x7FFFFFFFL - 1); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:164:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long long, 0, ULLONG_MAX, "%llu", xstrtoull, str, base, ull, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:183:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x80000000", 0, -0x7FFFFFFFL - 1); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:53:4: note: in expansion of macro 'bfs_diag' (bfs_diag(__VA_ARGS__)) \ ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:164:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long long, 0, ULLONG_MAX, "%llu", xstrtoull, str, base, ull, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:183:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x80000000", 0, -0x7FFFFFFFL - 1); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:54:4: note: in expansion of macro 'bfs_diag' (bfs_diag("Check failed: `%s`", str)) ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:164:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long long, 0, ULLONG_MAX, "%llu", xstrtoull, str, base, ull, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:183:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x80000000", 0, -0x7FFFFFFFL - 1); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:164:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long long, 0, ULLONG_MAX, "%llu", xstrtoull, str, base, ull, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:183:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x80000000", 0, -0x7FFFFFFFL - 1); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:164:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long long, 0, ULLONG_MAX, "%llu", xstrtoull, str, base, ull, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:183:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x80000000", 0, -0x7FFFFFFFL - 1); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:164:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long long, 0, ULLONG_MAX, "%llu", xstrtoull, str, base, ull, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:183:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x80000000", 0, -0x7FFFFFFFL - 1); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:164:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long long, 0, ULLONG_MAX, "%llu", xstrtoull, str, base, ull, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:183:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x80000000", 0, -0x7FFFFFFFL - 1); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:157:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed short, SHRT_MIN, SHRT_MAX, "%d", xstrtos, str, base, s, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:185:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFFFFFFFFFFFFFF", 0, 0x7FFFFFFFFFFFFFFFLL); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:157:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed short, SHRT_MIN, SHRT_MAX, "%d", xstrtos, str, base, s, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:185:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFFFFFFFFFFFFFF", 0, 0x7FFFFFFFFFFFFFFFLL); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:157:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed short, SHRT_MIN, SHRT_MAX, "%d", xstrtos, str, base, s, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:185:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFFFFFFFFFFFFFF", 0, 0x7FFFFFFFFFFFFFFFLL); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:157:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed short, SHRT_MIN, SHRT_MAX, "%d", xstrtos, str, base, s, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:185:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFFFFFFFFFFFFFF", 0, 0x7FFFFFFFFFFFFFFFLL); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:53:4: note: in expansion of macro 'bfs_diag' (bfs_diag(__VA_ARGS__)) \ ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:157:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed short, SHRT_MIN, SHRT_MAX, "%d", xstrtos, str, base, s, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:185:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFFFFFFFFFFFFFF", 0, 0x7FFFFFFFFFFFFFFFLL); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:54:4: note: in expansion of macro 'bfs_diag' (bfs_diag("Check failed: `%s`", str)) ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:157:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed short, SHRT_MIN, SHRT_MAX, "%d", xstrtos, str, base, s, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:185:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFFFFFFFFFFFFFF", 0, 0x7FFFFFFFFFFFFFFFLL); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:157:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed short, SHRT_MIN, SHRT_MAX, "%d", xstrtos, str, base, s, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:185:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFFFFFFFFFFFFFF", 0, 0x7FFFFFFFFFFFFFFFLL); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:157:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed short, SHRT_MIN, SHRT_MAX, "%d", xstrtos, str, base, s, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:185:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFFFFFFFFFFFFFF", 0, 0x7FFFFFFFFFFFFFFFLL); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:157:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed short, SHRT_MIN, SHRT_MAX, "%d", xstrtos, str, base, s, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:185:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFFFFFFFFFFFFFF", 0, 0x7FFFFFFFFFFFFFFFLL); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:157:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed short, SHRT_MIN, SHRT_MAX, "%d", xstrtos, str, base, s, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:185:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFFFFFFFFFFFFFF", 0, 0x7FFFFFFFFFFFFFFFLL); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:158:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed int, INT_MIN, INT_MAX, "%d", xstrtoi, str, base, i, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:185:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFFFFFFFFFFFFFF", 0, 0x7FFFFFFFFFFFFFFFLL); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:158:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed int, INT_MIN, INT_MAX, "%d", xstrtoi, str, base, i, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:185:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFFFFFFFFFFFFFF", 0, 0x7FFFFFFFFFFFFFFFLL); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:158:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed int, INT_MIN, INT_MAX, "%d", xstrtoi, str, base, i, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:185:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFFFFFFFFFFFFFF", 0, 0x7FFFFFFFFFFFFFFFLL); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:158:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed int, INT_MIN, INT_MAX, "%d", xstrtoi, str, base, i, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:185:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFFFFFFFFFFFFFF", 0, 0x7FFFFFFFFFFFFFFFLL); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:53:4: note: in expansion of macro 'bfs_diag' (bfs_diag(__VA_ARGS__)) \ ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:158:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed int, INT_MIN, INT_MAX, "%d", xstrtoi, str, base, i, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:185:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFFFFFFFFFFFFFF", 0, 0x7FFFFFFFFFFFFFFFLL); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:54:4: note: in expansion of macro 'bfs_diag' (bfs_diag("Check failed: `%s`", str)) ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:158:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed int, INT_MIN, INT_MAX, "%d", xstrtoi, str, base, i, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:185:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFFFFFFFFFFFFFF", 0, 0x7FFFFFFFFFFFFFFFLL); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:158:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed int, INT_MIN, INT_MAX, "%d", xstrtoi, str, base, i, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:185:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFFFFFFFFFFFFFF", 0, 0x7FFFFFFFFFFFFFFFLL); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:158:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed int, INT_MIN, INT_MAX, "%d", xstrtoi, str, base, i, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:185:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFFFFFFFFFFFFFF", 0, 0x7FFFFFFFFFFFFFFFLL); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:158:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed int, INT_MIN, INT_MAX, "%d", xstrtoi, str, base, i, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:185:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFFFFFFFFFFFFFF", 0, 0x7FFFFFFFFFFFFFFFLL); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:158:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed int, INT_MIN, INT_MAX, "%d", xstrtoi, str, base, i, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:185:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFFFFFFFFFFFFFF", 0, 0x7FFFFFFFFFFFFFFFLL); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:159:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long, LONG_MIN, LONG_MAX, "%ld", xstrtol, str, base, l, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:185:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFFFFFFFFFFFFFF", 0, 0x7FFFFFFFFFFFFFFFLL); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:159:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long, LONG_MIN, LONG_MAX, "%ld", xstrtol, str, base, l, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:185:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFFFFFFFFFFFFFF", 0, 0x7FFFFFFFFFFFFFFFLL); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:159:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long, LONG_MIN, LONG_MAX, "%ld", xstrtol, str, base, l, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:185:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFFFFFFFFFFFFFF", 0, 0x7FFFFFFFFFFFFFFFLL); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:159:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long, LONG_MIN, LONG_MAX, "%ld", xstrtol, str, base, l, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:185:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFFFFFFFFFFFFFF", 0, 0x7FFFFFFFFFFFFFFFLL); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:53:4: note: in expansion of macro 'bfs_diag' (bfs_diag(__VA_ARGS__)) \ ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:159:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long, LONG_MIN, LONG_MAX, "%ld", xstrtol, str, base, l, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:185:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFFFFFFFFFFFFFF", 0, 0x7FFFFFFFFFFFFFFFLL); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:54:4: note: in expansion of macro 'bfs_diag' (bfs_diag("Check failed: `%s`", str)) ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:159:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long, LONG_MIN, LONG_MAX, "%ld", xstrtol, str, base, l, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:185:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFFFFFFFFFFFFFF", 0, 0x7FFFFFFFFFFFFFFFLL); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:159:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long, LONG_MIN, LONG_MAX, "%ld", xstrtol, str, base, l, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:185:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFFFFFFFFFFFFFF", 0, 0x7FFFFFFFFFFFFFFFLL); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:159:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long, LONG_MIN, LONG_MAX, "%ld", xstrtol, str, base, l, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:185:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFFFFFFFFFFFFFF", 0, 0x7FFFFFFFFFFFFFFFLL); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:159:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long, LONG_MIN, LONG_MAX, "%ld", xstrtol, str, base, l, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:185:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFFFFFFFFFFFFFF", 0, 0x7FFFFFFFFFFFFFFFLL); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:159:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long, LONG_MIN, LONG_MAX, "%ld", xstrtol, str, base, l, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:185:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFFFFFFFFFFFFFF", 0, 0x7FFFFFFFFFFFFFFFLL); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:160:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long long, LLONG_MIN, LLONG_MAX, "%lld", xstrtoll, str, base, ll, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:185:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFFFFFFFFFFFFFF", 0, 0x7FFFFFFFFFFFFFFFLL); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:160:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long long, LLONG_MIN, LLONG_MAX, "%lld", xstrtoll, str, base, ll, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:185:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFFFFFFFFFFFFFF", 0, 0x7FFFFFFFFFFFFFFFLL); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:160:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long long, LLONG_MIN, LLONG_MAX, "%lld", xstrtoll, str, base, ll, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:185:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFFFFFFFFFFFFFF", 0, 0x7FFFFFFFFFFFFFFFLL); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:160:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long long, LLONG_MIN, LLONG_MAX, "%lld", xstrtoll, str, base, ll, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:185:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFFFFFFFFFFFFFF", 0, 0x7FFFFFFFFFFFFFFFLL); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:53:4: note: in expansion of macro 'bfs_diag' (bfs_diag(__VA_ARGS__)) \ ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:160:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long long, LLONG_MIN, LLONG_MAX, "%lld", xstrtoll, str, base, ll, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:185:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFFFFFFFFFFFFFF", 0, 0x7FFFFFFFFFFFFFFFLL); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:54:4: note: in expansion of macro 'bfs_diag' (bfs_diag("Check failed: `%s`", str)) ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:160:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long long, LLONG_MIN, LLONG_MAX, "%lld", xstrtoll, str, base, ll, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:185:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFFFFFFFFFFFFFF", 0, 0x7FFFFFFFFFFFFFFFLL); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:160:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long long, LLONG_MIN, LLONG_MAX, "%lld", xstrtoll, str, base, ll, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:185:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFFFFFFFFFFFFFF", 0, 0x7FFFFFFFFFFFFFFFLL); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:160:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long long, LLONG_MIN, LLONG_MAX, "%lld", xstrtoll, str, base, ll, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:185:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFFFFFFFFFFFFFF", 0, 0x7FFFFFFFFFFFFFFFLL); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:160:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long long, LLONG_MIN, LLONG_MAX, "%lld", xstrtoll, str, base, ll, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:185:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFFFFFFFFFFFFFF", 0, 0x7FFFFFFFFFFFFFFFLL); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:160:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long long, LLONG_MIN, LLONG_MAX, "%lld", xstrtoll, str, base, ll, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:185:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFFFFFFFFFFFFFF", 0, 0x7FFFFFFFFFFFFFFFLL); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:161:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned short, 0, USHRT_MAX, "%u", xstrtous, str, base, us, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:185:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFFFFFFFFFFFFFF", 0, 0x7FFFFFFFFFFFFFFFLL); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:161:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned short, 0, USHRT_MAX, "%u", xstrtous, str, base, us, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:185:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFFFFFFFFFFFFFF", 0, 0x7FFFFFFFFFFFFFFFLL); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:161:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned short, 0, USHRT_MAX, "%u", xstrtous, str, base, us, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:185:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFFFFFFFFFFFFFF", 0, 0x7FFFFFFFFFFFFFFFLL); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:161:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned short, 0, USHRT_MAX, "%u", xstrtous, str, base, us, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:185:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFFFFFFFFFFFFFF", 0, 0x7FFFFFFFFFFFFFFFLL); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:53:4: note: in expansion of macro 'bfs_diag' (bfs_diag(__VA_ARGS__)) \ ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:161:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned short, 0, USHRT_MAX, "%u", xstrtous, str, base, us, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:185:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFFFFFFFFFFFFFF", 0, 0x7FFFFFFFFFFFFFFFLL); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:54:4: note: in expansion of macro 'bfs_diag' (bfs_diag("Check failed: `%s`", str)) ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:161:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned short, 0, USHRT_MAX, "%u", xstrtous, str, base, us, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:185:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFFFFFFFFFFFFFF", 0, 0x7FFFFFFFFFFFFFFFLL); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:161:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned short, 0, USHRT_MAX, "%u", xstrtous, str, base, us, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:185:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFFFFFFFFFFFFFF", 0, 0x7FFFFFFFFFFFFFFFLL); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:161:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned short, 0, USHRT_MAX, "%u", xstrtous, str, base, us, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:185:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFFFFFFFFFFFFFF", 0, 0x7FFFFFFFFFFFFFFFLL); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:161:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned short, 0, USHRT_MAX, "%u", xstrtous, str, base, us, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:185:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFFFFFFFFFFFFFF", 0, 0x7FFFFFFFFFFFFFFFLL); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:161:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned short, 0, USHRT_MAX, "%u", xstrtous, str, base, us, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:185:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFFFFFFFFFFFFFF", 0, 0x7FFFFFFFFFFFFFFFLL); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:162:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned int, 0, UINT_MAX, "%u", xstrtoui, str, base, ui, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:185:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFFFFFFFFFFFFFF", 0, 0x7FFFFFFFFFFFFFFFLL); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:162:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned int, 0, UINT_MAX, "%u", xstrtoui, str, base, ui, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:185:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFFFFFFFFFFFFFF", 0, 0x7FFFFFFFFFFFFFFFLL); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:162:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned int, 0, UINT_MAX, "%u", xstrtoui, str, base, ui, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:185:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFFFFFFFFFFFFFF", 0, 0x7FFFFFFFFFFFFFFFLL); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:162:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned int, 0, UINT_MAX, "%u", xstrtoui, str, base, ui, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:185:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFFFFFFFFFFFFFF", 0, 0x7FFFFFFFFFFFFFFFLL); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:53:4: note: in expansion of macro 'bfs_diag' (bfs_diag(__VA_ARGS__)) \ ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:162:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned int, 0, UINT_MAX, "%u", xstrtoui, str, base, ui, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:185:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFFFFFFFFFFFFFF", 0, 0x7FFFFFFFFFFFFFFFLL); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:54:4: note: in expansion of macro 'bfs_diag' (bfs_diag("Check failed: `%s`", str)) ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:162:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned int, 0, UINT_MAX, "%u", xstrtoui, str, base, ui, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:185:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFFFFFFFFFFFFFF", 0, 0x7FFFFFFFFFFFFFFFLL); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:162:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned int, 0, UINT_MAX, "%u", xstrtoui, str, base, ui, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:185:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFFFFFFFFFFFFFF", 0, 0x7FFFFFFFFFFFFFFFLL); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:162:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned int, 0, UINT_MAX, "%u", xstrtoui, str, base, ui, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:185:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFFFFFFFFFFFFFF", 0, 0x7FFFFFFFFFFFFFFFLL); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:162:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned int, 0, UINT_MAX, "%u", xstrtoui, str, base, ui, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:185:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFFFFFFFFFFFFFF", 0, 0x7FFFFFFFFFFFFFFFLL); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:162:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned int, 0, UINT_MAX, "%u", xstrtoui, str, base, ui, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:185:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFFFFFFFFFFFFFF", 0, 0x7FFFFFFFFFFFFFFFLL); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:163:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long, 0, ULONG_MAX, "%lu", xstrtoul, str, base, ul, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:185:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFFFFFFFFFFFFFF", 0, 0x7FFFFFFFFFFFFFFFLL); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:163:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long, 0, ULONG_MAX, "%lu", xstrtoul, str, base, ul, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:185:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFFFFFFFFFFFFFF", 0, 0x7FFFFFFFFFFFFFFFLL); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:163:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long, 0, ULONG_MAX, "%lu", xstrtoul, str, base, ul, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:185:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFFFFFFFFFFFFFF", 0, 0x7FFFFFFFFFFFFFFFLL); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:163:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long, 0, ULONG_MAX, "%lu", xstrtoul, str, base, ul, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:185:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFFFFFFFFFFFFFF", 0, 0x7FFFFFFFFFFFFFFFLL); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:53:4: note: in expansion of macro 'bfs_diag' (bfs_diag(__VA_ARGS__)) \ ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:163:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long, 0, ULONG_MAX, "%lu", xstrtoul, str, base, ul, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:185:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFFFFFFFFFFFFFF", 0, 0x7FFFFFFFFFFFFFFFLL); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:54:4: note: in expansion of macro 'bfs_diag' (bfs_diag("Check failed: `%s`", str)) ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:163:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long, 0, ULONG_MAX, "%lu", xstrtoul, str, base, ul, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:185:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFFFFFFFFFFFFFF", 0, 0x7FFFFFFFFFFFFFFFLL); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:163:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long, 0, ULONG_MAX, "%lu", xstrtoul, str, base, ul, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:185:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFFFFFFFFFFFFFF", 0, 0x7FFFFFFFFFFFFFFFLL); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:163:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long, 0, ULONG_MAX, "%lu", xstrtoul, str, base, ul, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:185:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFFFFFFFFFFFFFF", 0, 0x7FFFFFFFFFFFFFFFLL); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:163:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long, 0, ULONG_MAX, "%lu", xstrtoul, str, base, ul, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:185:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFFFFFFFFFFFFFF", 0, 0x7FFFFFFFFFFFFFFFLL); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:163:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long, 0, ULONG_MAX, "%lu", xstrtoul, str, base, ul, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:185:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFFFFFFFFFFFFFF", 0, 0x7FFFFFFFFFFFFFFFLL); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:164:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long long, 0, ULLONG_MAX, "%llu", xstrtoull, str, base, ull, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:185:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFFFFFFFFFFFFFF", 0, 0x7FFFFFFFFFFFFFFFLL); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:164:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long long, 0, ULLONG_MAX, "%llu", xstrtoull, str, base, ull, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:185:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFFFFFFFFFFFFFF", 0, 0x7FFFFFFFFFFFFFFFLL); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:164:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long long, 0, ULLONG_MAX, "%llu", xstrtoull, str, base, ull, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:185:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFFFFFFFFFFFFFF", 0, 0x7FFFFFFFFFFFFFFFLL); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:164:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long long, 0, ULLONG_MAX, "%llu", xstrtoull, str, base, ull, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:185:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFFFFFFFFFFFFFF", 0, 0x7FFFFFFFFFFFFFFFLL); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:53:4: note: in expansion of macro 'bfs_diag' (bfs_diag(__VA_ARGS__)) \ ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:164:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long long, 0, ULLONG_MAX, "%llu", xstrtoull, str, base, ull, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:185:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFFFFFFFFFFFFFF", 0, 0x7FFFFFFFFFFFFFFFLL); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:54:4: note: in expansion of macro 'bfs_diag' (bfs_diag("Check failed: `%s`", str)) ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:164:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long long, 0, ULLONG_MAX, "%llu", xstrtoull, str, base, ull, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:185:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFFFFFFFFFFFFFF", 0, 0x7FFFFFFFFFFFFFFFLL); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:164:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long long, 0, ULLONG_MAX, "%llu", xstrtoull, str, base, ull, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:185:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFFFFFFFFFFFFFF", 0, 0x7FFFFFFFFFFFFFFFLL); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:164:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long long, 0, ULLONG_MAX, "%llu", xstrtoull, str, base, ull, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:185:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFFFFFFFFFFFFFF", 0, 0x7FFFFFFFFFFFFFFFLL); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:164:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long long, 0, ULLONG_MAX, "%llu", xstrtoull, str, base, ull, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:185:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFFFFFFFFFFFFFF", 0, 0x7FFFFFFFFFFFFFFFLL); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:164:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long long, 0, ULLONG_MAX, "%llu", xstrtoull, str, base, ull, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:185:2: note: in expansion of macro 'check_strtoint' check_strtoint("0x7FFFFFFFFFFFFFFF", 0, 0x7FFFFFFFFFFFFFFFLL); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:157:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed short, SHRT_MIN, SHRT_MAX, "%d", xstrtos, str, base, s, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:186:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x8000000000000000", 0, -0x7FFFFFFFFFFFFFFFLL - 1); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:157:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed short, SHRT_MIN, SHRT_MAX, "%d", xstrtos, str, base, s, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:186:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x8000000000000000", 0, -0x7FFFFFFFFFFFFFFFLL - 1); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:157:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed short, SHRT_MIN, SHRT_MAX, "%d", xstrtos, str, base, s, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:186:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x8000000000000000", 0, -0x7FFFFFFFFFFFFFFFLL - 1); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:157:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed short, SHRT_MIN, SHRT_MAX, "%d", xstrtos, str, base, s, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:186:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x8000000000000000", 0, -0x7FFFFFFFFFFFFFFFLL - 1); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:53:4: note: in expansion of macro 'bfs_diag' (bfs_diag(__VA_ARGS__)) \ ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:157:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed short, SHRT_MIN, SHRT_MAX, "%d", xstrtos, str, base, s, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:186:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x8000000000000000", 0, -0x7FFFFFFFFFFFFFFFLL - 1); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:54:4: note: in expansion of macro 'bfs_diag' (bfs_diag("Check failed: `%s`", str)) ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:157:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed short, SHRT_MIN, SHRT_MAX, "%d", xstrtos, str, base, s, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:186:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x8000000000000000", 0, -0x7FFFFFFFFFFFFFFFLL - 1); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:157:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed short, SHRT_MIN, SHRT_MAX, "%d", xstrtos, str, base, s, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:186:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x8000000000000000", 0, -0x7FFFFFFFFFFFFFFFLL - 1); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:157:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed short, SHRT_MIN, SHRT_MAX, "%d", xstrtos, str, base, s, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:186:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x8000000000000000", 0, -0x7FFFFFFFFFFFFFFFLL - 1); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:157:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed short, SHRT_MIN, SHRT_MAX, "%d", xstrtos, str, base, s, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:186:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x8000000000000000", 0, -0x7FFFFFFFFFFFFFFFLL - 1); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:157:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed short, SHRT_MIN, SHRT_MAX, "%d", xstrtos, str, base, s, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:186:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x8000000000000000", 0, -0x7FFFFFFFFFFFFFFFLL - 1); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:158:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed int, INT_MIN, INT_MAX, "%d", xstrtoi, str, base, i, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:186:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x8000000000000000", 0, -0x7FFFFFFFFFFFFFFFLL - 1); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:158:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed int, INT_MIN, INT_MAX, "%d", xstrtoi, str, base, i, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:186:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x8000000000000000", 0, -0x7FFFFFFFFFFFFFFFLL - 1); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:158:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed int, INT_MIN, INT_MAX, "%d", xstrtoi, str, base, i, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:186:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x8000000000000000", 0, -0x7FFFFFFFFFFFFFFFLL - 1); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:158:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed int, INT_MIN, INT_MAX, "%d", xstrtoi, str, base, i, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:186:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x8000000000000000", 0, -0x7FFFFFFFFFFFFFFFLL - 1); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:53:4: note: in expansion of macro 'bfs_diag' (bfs_diag(__VA_ARGS__)) \ ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:158:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed int, INT_MIN, INT_MAX, "%d", xstrtoi, str, base, i, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:186:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x8000000000000000", 0, -0x7FFFFFFFFFFFFFFFLL - 1); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:54:4: note: in expansion of macro 'bfs_diag' (bfs_diag("Check failed: `%s`", str)) ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:158:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed int, INT_MIN, INT_MAX, "%d", xstrtoi, str, base, i, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:186:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x8000000000000000", 0, -0x7FFFFFFFFFFFFFFFLL - 1); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:158:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed int, INT_MIN, INT_MAX, "%d", xstrtoi, str, base, i, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:186:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x8000000000000000", 0, -0x7FFFFFFFFFFFFFFFLL - 1); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:158:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed int, INT_MIN, INT_MAX, "%d", xstrtoi, str, base, i, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:186:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x8000000000000000", 0, -0x7FFFFFFFFFFFFFFFLL - 1); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:158:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed int, INT_MIN, INT_MAX, "%d", xstrtoi, str, base, i, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:186:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x8000000000000000", 0, -0x7FFFFFFFFFFFFFFFLL - 1); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:158:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed int, INT_MIN, INT_MAX, "%d", xstrtoi, str, base, i, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:186:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x8000000000000000", 0, -0x7FFFFFFFFFFFFFFFLL - 1); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:159:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long, LONG_MIN, LONG_MAX, "%ld", xstrtol, str, base, l, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:186:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x8000000000000000", 0, -0x7FFFFFFFFFFFFFFFLL - 1); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:159:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long, LONG_MIN, LONG_MAX, "%ld", xstrtol, str, base, l, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:186:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x8000000000000000", 0, -0x7FFFFFFFFFFFFFFFLL - 1); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:159:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long, LONG_MIN, LONG_MAX, "%ld", xstrtol, str, base, l, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:186:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x8000000000000000", 0, -0x7FFFFFFFFFFFFFFFLL - 1); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:159:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long, LONG_MIN, LONG_MAX, "%ld", xstrtol, str, base, l, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:186:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x8000000000000000", 0, -0x7FFFFFFFFFFFFFFFLL - 1); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:53:4: note: in expansion of macro 'bfs_diag' (bfs_diag(__VA_ARGS__)) \ ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:159:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long, LONG_MIN, LONG_MAX, "%ld", xstrtol, str, base, l, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:186:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x8000000000000000", 0, -0x7FFFFFFFFFFFFFFFLL - 1); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:54:4: note: in expansion of macro 'bfs_diag' (bfs_diag("Check failed: `%s`", str)) ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:159:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long, LONG_MIN, LONG_MAX, "%ld", xstrtol, str, base, l, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:186:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x8000000000000000", 0, -0x7FFFFFFFFFFFFFFFLL - 1); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:159:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long, LONG_MIN, LONG_MAX, "%ld", xstrtol, str, base, l, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:186:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x8000000000000000", 0, -0x7FFFFFFFFFFFFFFFLL - 1); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:159:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long, LONG_MIN, LONG_MAX, "%ld", xstrtol, str, base, l, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:186:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x8000000000000000", 0, -0x7FFFFFFFFFFFFFFFLL - 1); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:159:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long, LONG_MIN, LONG_MAX, "%ld", xstrtol, str, base, l, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:186:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x8000000000000000", 0, -0x7FFFFFFFFFFFFFFFLL - 1); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:159:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long, LONG_MIN, LONG_MAX, "%ld", xstrtol, str, base, l, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:186:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x8000000000000000", 0, -0x7FFFFFFFFFFFFFFFLL - 1); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:160:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long long, LLONG_MIN, LLONG_MAX, "%lld", xstrtoll, str, base, ll, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:186:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x8000000000000000", 0, -0x7FFFFFFFFFFFFFFFLL - 1); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:160:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long long, LLONG_MIN, LLONG_MAX, "%lld", xstrtoll, str, base, ll, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:186:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x8000000000000000", 0, -0x7FFFFFFFFFFFFFFFLL - 1); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:160:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long long, LLONG_MIN, LLONG_MAX, "%lld", xstrtoll, str, base, ll, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:186:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x8000000000000000", 0, -0x7FFFFFFFFFFFFFFFLL - 1); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:160:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long long, LLONG_MIN, LLONG_MAX, "%lld", xstrtoll, str, base, ll, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:186:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x8000000000000000", 0, -0x7FFFFFFFFFFFFFFFLL - 1); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:53:4: note: in expansion of macro 'bfs_diag' (bfs_diag(__VA_ARGS__)) \ ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:160:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long long, LLONG_MIN, LLONG_MAX, "%lld", xstrtoll, str, base, ll, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:186:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x8000000000000000", 0, -0x7FFFFFFFFFFFFFFFLL - 1); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:54:4: note: in expansion of macro 'bfs_diag' (bfs_diag("Check failed: `%s`", str)) ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:160:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long long, LLONG_MIN, LLONG_MAX, "%lld", xstrtoll, str, base, ll, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:186:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x8000000000000000", 0, -0x7FFFFFFFFFFFFFFFLL - 1); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:160:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long long, LLONG_MIN, LLONG_MAX, "%lld", xstrtoll, str, base, ll, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:186:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x8000000000000000", 0, -0x7FFFFFFFFFFFFFFFLL - 1); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:160:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long long, LLONG_MIN, LLONG_MAX, "%lld", xstrtoll, str, base, ll, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:186:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x8000000000000000", 0, -0x7FFFFFFFFFFFFFFFLL - 1); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:160:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long long, LLONG_MIN, LLONG_MAX, "%lld", xstrtoll, str, base, ll, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:186:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x8000000000000000", 0, -0x7FFFFFFFFFFFFFFFLL - 1); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:160:3: note: in expansion of macro 'check_strtotype' check_strtotype( signed long long, LLONG_MIN, LLONG_MAX, "%lld", xstrtoll, str, base, ll, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:186:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x8000000000000000", 0, -0x7FFFFFFFFFFFFFFFLL - 1); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:161:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned short, 0, USHRT_MAX, "%u", xstrtous, str, base, us, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:186:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x8000000000000000", 0, -0x7FFFFFFFFFFFFFFFLL - 1); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:161:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned short, 0, USHRT_MAX, "%u", xstrtous, str, base, us, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:186:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x8000000000000000", 0, -0x7FFFFFFFFFFFFFFFLL - 1); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:161:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned short, 0, USHRT_MAX, "%u", xstrtous, str, base, us, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:186:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x8000000000000000", 0, -0x7FFFFFFFFFFFFFFFLL - 1); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:161:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned short, 0, USHRT_MAX, "%u", xstrtous, str, base, us, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:186:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x8000000000000000", 0, -0x7FFFFFFFFFFFFFFFLL - 1); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:53:4: note: in expansion of macro 'bfs_diag' (bfs_diag(__VA_ARGS__)) \ ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:161:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned short, 0, USHRT_MAX, "%u", xstrtous, str, base, us, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:186:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x8000000000000000", 0, -0x7FFFFFFFFFFFFFFFLL - 1); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:54:4: note: in expansion of macro 'bfs_diag' (bfs_diag("Check failed: `%s`", str)) ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:161:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned short, 0, USHRT_MAX, "%u", xstrtous, str, base, us, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:186:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x8000000000000000", 0, -0x7FFFFFFFFFFFFFFFLL - 1); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:161:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned short, 0, USHRT_MAX, "%u", xstrtous, str, base, us, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:186:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x8000000000000000", 0, -0x7FFFFFFFFFFFFFFFLL - 1); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:161:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned short, 0, USHRT_MAX, "%u", xstrtous, str, base, us, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:186:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x8000000000000000", 0, -0x7FFFFFFFFFFFFFFFLL - 1); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:161:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned short, 0, USHRT_MAX, "%u", xstrtous, str, base, us, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:186:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x8000000000000000", 0, -0x7FFFFFFFFFFFFFFFLL - 1); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:161:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned short, 0, USHRT_MAX, "%u", xstrtous, str, base, us, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:186:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x8000000000000000", 0, -0x7FFFFFFFFFFFFFFFLL - 1); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:162:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned int, 0, UINT_MAX, "%u", xstrtoui, str, base, ui, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:186:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x8000000000000000", 0, -0x7FFFFFFFFFFFFFFFLL - 1); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:162:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned int, 0, UINT_MAX, "%u", xstrtoui, str, base, ui, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:186:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x8000000000000000", 0, -0x7FFFFFFFFFFFFFFFLL - 1); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:162:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned int, 0, UINT_MAX, "%u", xstrtoui, str, base, ui, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:186:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x8000000000000000", 0, -0x7FFFFFFFFFFFFFFFLL - 1); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:162:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned int, 0, UINT_MAX, "%u", xstrtoui, str, base, ui, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:186:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x8000000000000000", 0, -0x7FFFFFFFFFFFFFFFLL - 1); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:53:4: note: in expansion of macro 'bfs_diag' (bfs_diag(__VA_ARGS__)) \ ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:162:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned int, 0, UINT_MAX, "%u", xstrtoui, str, base, ui, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:186:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x8000000000000000", 0, -0x7FFFFFFFFFFFFFFFLL - 1); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:54:4: note: in expansion of macro 'bfs_diag' (bfs_diag("Check failed: `%s`", str)) ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:162:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned int, 0, UINT_MAX, "%u", xstrtoui, str, base, ui, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:186:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x8000000000000000", 0, -0x7FFFFFFFFFFFFFFFLL - 1); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:162:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned int, 0, UINT_MAX, "%u", xstrtoui, str, base, ui, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:186:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x8000000000000000", 0, -0x7FFFFFFFFFFFFFFFLL - 1); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:162:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned int, 0, UINT_MAX, "%u", xstrtoui, str, base, ui, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:186:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x8000000000000000", 0, -0x7FFFFFFFFFFFFFFFLL - 1); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:162:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned int, 0, UINT_MAX, "%u", xstrtoui, str, base, ui, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:186:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x8000000000000000", 0, -0x7FFFFFFFFFFFFFFFLL - 1); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:162:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned int, 0, UINT_MAX, "%u", xstrtoui, str, base, ui, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:186:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x8000000000000000", 0, -0x7FFFFFFFFFFFFFFFLL - 1); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:163:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long, 0, ULONG_MAX, "%lu", xstrtoul, str, base, ul, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:186:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x8000000000000000", 0, -0x7FFFFFFFFFFFFFFFLL - 1); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:163:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long, 0, ULONG_MAX, "%lu", xstrtoul, str, base, ul, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:186:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x8000000000000000", 0, -0x7FFFFFFFFFFFFFFFLL - 1); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:163:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long, 0, ULONG_MAX, "%lu", xstrtoul, str, base, ul, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:186:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x8000000000000000", 0, -0x7FFFFFFFFFFFFFFFLL - 1); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:163:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long, 0, ULONG_MAX, "%lu", xstrtoul, str, base, ul, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:186:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x8000000000000000", 0, -0x7FFFFFFFFFFFFFFFLL - 1); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:53:4: note: in expansion of macro 'bfs_diag' (bfs_diag(__VA_ARGS__)) \ ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:163:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long, 0, ULONG_MAX, "%lu", xstrtoul, str, base, ul, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:186:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x8000000000000000", 0, -0x7FFFFFFFFFFFFFFFLL - 1); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:54:4: note: in expansion of macro 'bfs_diag' (bfs_diag("Check failed: `%s`", str)) ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:163:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long, 0, ULONG_MAX, "%lu", xstrtoul, str, base, ul, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:186:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x8000000000000000", 0, -0x7FFFFFFFFFFFFFFFLL - 1); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:163:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long, 0, ULONG_MAX, "%lu", xstrtoul, str, base, ul, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:186:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x8000000000000000", 0, -0x7FFFFFFFFFFFFFFFLL - 1); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:163:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long, 0, ULONG_MAX, "%lu", xstrtoul, str, base, ul, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:186:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x8000000000000000", 0, -0x7FFFFFFFFFFFFFFFLL - 1); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:163:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long, 0, ULONG_MAX, "%lu", xstrtoul, str, base, ul, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:186:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x8000000000000000", 0, -0x7FFFFFFFFFFFFFFFLL - 1); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:163:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long, 0, ULONG_MAX, "%lu", xstrtoul, str, base, ul, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:186:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x8000000000000000", 0, -0x7FFFFFFFFFFFFFFFLL - 1); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:164:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long long, 0, ULLONG_MAX, "%llu", xstrtoull, str, base, ull, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:186:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x8000000000000000", 0, -0x7FFFFFFFFFFFFFFFLL - 1); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:164:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long long, 0, ULLONG_MAX, "%llu", xstrtoull, str, base, ull, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:186:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x8000000000000000", 0, -0x7FFFFFFFFFFFFFFFLL - 1); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:164:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long long, 0, ULLONG_MAX, "%llu", xstrtoull, str, base, ull, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:186:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x8000000000000000", 0, -0x7FFFFFFFFFFFFFFFLL - 1); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:148:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) == 0); \ ^~~~~~~~~~ tests/bfstd.c:164:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long long, 0, ULLONG_MAX, "%llu", xstrtoull, str, base, ull, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:186:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x8000000000000000", 0, -0x7FFFFFFFFFFFFFFFLL - 1); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:53:4: note: in expansion of macro 'bfs_diag' (bfs_diag(__VA_ARGS__)) \ ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:164:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long long, 0, ULLONG_MAX, "%llu", xstrtoull, str, base, ull, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:186:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x8000000000000000", 0, -0x7FFFFFFFFFFFFFFFLL - 1); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:54:4: note: in expansion of macro 'bfs_diag' (bfs_diag("Check failed: `%s`", str)) ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:149:4: note: in expansion of macro 'bfs_check' bfs_check(v == (type)(n), "%s('%s') == " fmt " (!= " fmt ")", #fn, str, v, (type)(n)); \ ^~~~~~~~~ tests/bfstd.c:164:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long long, 0, ULLONG_MAX, "%llu", xstrtoull, str, base, ull, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:186:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x8000000000000000", 0, -0x7FFFFFFFFFFFFFFFLL - 1); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:164:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long long, 0, ULLONG_MAX, "%llu", xstrtoull, str, base, ull, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:186:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x8000000000000000", 0, -0x7FFFFFFFFFFFFFFFLL - 1); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:164:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long long, 0, ULLONG_MAX, "%llu", xstrtoull, str, base, ull, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:186:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x8000000000000000", 0, -0x7FFFFFFFFFFFFFFFLL - 1); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:164:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long long, 0, ULLONG_MAX, "%llu", xstrtoull, str, base, ull, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:186:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x8000000000000000", 0, -0x7FFFFFFFFFFFFFFFLL - 1); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:151:4: note: in expansion of macro 'bfs_echeck' bfs_echeck(fn(str, NULL, base, &v) != 0 && errno == ERANGE); \ ^~~~~~~~~~ tests/bfstd.c:164:3: note: in expansion of macro 'check_strtotype' check_strtotype(unsigned long long, 0, ULLONG_MAX, "%llu", xstrtoull, str, base, ull, n); \ ^~~~~~~~~~~~~~~ tests/bfstd.c:186:2: note: in expansion of macro 'check_strtoint' check_strtoint("-0x8000000000000000", 0, -0x7FFFFFFFFFFFFFFFLL - 1); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:190:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoll(str, &end, base, &ll) == 0); \ ^~~~~~~~~~ tests/bfstd.c:195:2: note: in expansion of macro 'check_strtoend' check_strtoend("123 ", " ", 0, 123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:190:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoll(str, &end, base, &ll) == 0); \ ^~~~~~~~~~ tests/bfstd.c:195:2: note: in expansion of macro 'check_strtoend' check_strtoend("123 ", " ", 0, 123); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:190:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoll(str, &end, base, &ll) == 0); \ ^~~~~~~~~~ tests/bfstd.c:195:2: note: in expansion of macro 'check_strtoend' check_strtoend("123 ", " ", 0, 123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:190:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoll(str, &end, base, &ll) == 0); \ ^~~~~~~~~~ tests/bfstd.c:195:2: note: in expansion of macro 'check_strtoend' check_strtoend("123 ", " ", 0, 123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:53:4: note: in expansion of macro 'bfs_diag' (bfs_diag(__VA_ARGS__)) \ ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:191:3: note: in expansion of macro 'bfs_check' bfs_check(ll == (n), "xstrtoll('%s') == %lld (!= %lld)", str, ll, (long long)(n)); \ ^~~~~~~~~ tests/bfstd.c:195:2: note: in expansion of macro 'check_strtoend' check_strtoend("123 ", " ", 0, 123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:54:4: note: in expansion of macro 'bfs_diag' (bfs_diag("Check failed: `%s`", str)) ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:191:3: note: in expansion of macro 'bfs_check' bfs_check(ll == (n), "xstrtoll('%s') == %lld (!= %lld)", str, ll, (long long)(n)); \ ^~~~~~~~~ tests/bfstd.c:195:2: note: in expansion of macro 'check_strtoend' check_strtoend("123 ", " ", 0, 123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:53:4: note: in expansion of macro 'bfs_diag' (bfs_diag(__VA_ARGS__)) \ ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:192:3: note: in expansion of macro 'bfs_check' bfs_check(strcmp(end, estr) == 0, "xstrtoll('%s'): end == '%s' (!= '%s')", str, end, estr); \ ^~~~~~~~~ tests/bfstd.c:195:2: note: in expansion of macro 'check_strtoend' check_strtoend("123 ", " ", 0, 123); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:54:4: note: in expansion of macro 'bfs_diag' (bfs_diag("Check failed: `%s`", str)) ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:192:3: note: in expansion of macro 'bfs_check' bfs_check(strcmp(end, estr) == 0, "xstrtoll('%s'): end == '%s' (!= '%s')", str, end, estr); \ ^~~~~~~~~ tests/bfstd.c:195:2: note: in expansion of macro 'check_strtoend' check_strtoend("123 ", " ", 0, 123); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:190:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoll(str, &end, base, &ll) == 0); \ ^~~~~~~~~~ tests/bfstd.c:196:2: note: in expansion of macro 'check_strtoend' check_strtoend("0789", "89", 0, 07); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:190:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoll(str, &end, base, &ll) == 0); \ ^~~~~~~~~~ tests/bfstd.c:196:2: note: in expansion of macro 'check_strtoend' check_strtoend("0789", "89", 0, 07); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:190:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoll(str, &end, base, &ll) == 0); \ ^~~~~~~~~~ tests/bfstd.c:196:2: note: in expansion of macro 'check_strtoend' check_strtoend("0789", "89", 0, 07); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:190:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoll(str, &end, base, &ll) == 0); \ ^~~~~~~~~~ tests/bfstd.c:196:2: note: in expansion of macro 'check_strtoend' check_strtoend("0789", "89", 0, 07); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:53:4: note: in expansion of macro 'bfs_diag' (bfs_diag(__VA_ARGS__)) \ ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:191:3: note: in expansion of macro 'bfs_check' bfs_check(ll == (n), "xstrtoll('%s') == %lld (!= %lld)", str, ll, (long long)(n)); \ ^~~~~~~~~ tests/bfstd.c:196:2: note: in expansion of macro 'check_strtoend' check_strtoend("0789", "89", 0, 07); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:54:4: note: in expansion of macro 'bfs_diag' (bfs_diag("Check failed: `%s`", str)) ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:191:3: note: in expansion of macro 'bfs_check' bfs_check(ll == (n), "xstrtoll('%s') == %lld (!= %lld)", str, ll, (long long)(n)); \ ^~~~~~~~~ tests/bfstd.c:196:2: note: in expansion of macro 'check_strtoend' check_strtoend("0789", "89", 0, 07); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:53:4: note: in expansion of macro 'bfs_diag' (bfs_diag(__VA_ARGS__)) \ ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:192:3: note: in expansion of macro 'bfs_check' bfs_check(strcmp(end, estr) == 0, "xstrtoll('%s'): end == '%s' (!= '%s')", str, end, estr); \ ^~~~~~~~~ tests/bfstd.c:196:2: note: in expansion of macro 'check_strtoend' check_strtoend("0789", "89", 0, 07); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:54:4: note: in expansion of macro 'bfs_diag' (bfs_diag("Check failed: `%s`", str)) ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:192:3: note: in expansion of macro 'bfs_check' bfs_check(strcmp(end, estr) == 0, "xstrtoll('%s'): end == '%s' (!= '%s')", str, end, estr); \ ^~~~~~~~~ tests/bfstd.c:196:2: note: in expansion of macro 'check_strtoend' check_strtoend("0789", "89", 0, 07); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:190:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoll(str, &end, base, &ll) == 0); \ ^~~~~~~~~~ tests/bfstd.c:197:2: note: in expansion of macro 'check_strtoend' check_strtoend("789A", "A", 0, 789); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:190:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoll(str, &end, base, &ll) == 0); \ ^~~~~~~~~~ tests/bfstd.c:197:2: note: in expansion of macro 'check_strtoend' check_strtoend("789A", "A", 0, 789); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:190:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoll(str, &end, base, &ll) == 0); \ ^~~~~~~~~~ tests/bfstd.c:197:2: note: in expansion of macro 'check_strtoend' check_strtoend("789A", "A", 0, 789); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:190:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoll(str, &end, base, &ll) == 0); \ ^~~~~~~~~~ tests/bfstd.c:197:2: note: in expansion of macro 'check_strtoend' check_strtoend("789A", "A", 0, 789); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:53:4: note: in expansion of macro 'bfs_diag' (bfs_diag(__VA_ARGS__)) \ ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:191:3: note: in expansion of macro 'bfs_check' bfs_check(ll == (n), "xstrtoll('%s') == %lld (!= %lld)", str, ll, (long long)(n)); \ ^~~~~~~~~ tests/bfstd.c:197:2: note: in expansion of macro 'check_strtoend' check_strtoend("789A", "A", 0, 789); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:54:4: note: in expansion of macro 'bfs_diag' (bfs_diag("Check failed: `%s`", str)) ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:191:3: note: in expansion of macro 'bfs_check' bfs_check(ll == (n), "xstrtoll('%s') == %lld (!= %lld)", str, ll, (long long)(n)); \ ^~~~~~~~~ tests/bfstd.c:197:2: note: in expansion of macro 'check_strtoend' check_strtoend("789A", "A", 0, 789); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:53:4: note: in expansion of macro 'bfs_diag' (bfs_diag(__VA_ARGS__)) \ ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:192:3: note: in expansion of macro 'bfs_check' bfs_check(strcmp(end, estr) == 0, "xstrtoll('%s'): end == '%s' (!= '%s')", str, end, estr); \ ^~~~~~~~~ tests/bfstd.c:197:2: note: in expansion of macro 'check_strtoend' check_strtoend("789A", "A", 0, 789); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:54:4: note: in expansion of macro 'bfs_diag' (bfs_diag("Check failed: `%s`", str)) ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:192:3: note: in expansion of macro 'bfs_check' bfs_check(strcmp(end, estr) == 0, "xstrtoll('%s'): end == '%s' (!= '%s')", str, end, estr); \ ^~~~~~~~~ tests/bfstd.c:197:2: note: in expansion of macro 'check_strtoend' check_strtoend("789A", "A", 0, 789); ^~~~~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:190:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoll(str, &end, base, &ll) == 0); \ ^~~~~~~~~~ tests/bfstd.c:198:2: note: in expansion of macro 'check_strtoend' check_strtoend("0xDEFG", "G", 0, 0xDEF); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:190:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoll(str, &end, base, &ll) == 0); \ ^~~~~~~~~~ tests/bfstd.c:198:2: note: in expansion of macro 'check_strtoend' check_strtoend("0xDEFG", "G", 0, 0xDEF); ^~~~~~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:190:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoll(str, &end, base, &ll) == 0); \ ^~~~~~~~~~ tests/bfstd.c:198:2: note: in expansion of macro 'check_strtoend' check_strtoend("0xDEFG", "G", 0, 0xDEF); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:190:3: note: in expansion of macro 'bfs_echeck' bfs_echeck(xstrtoll(str, &end, base, &ll) == 0); \ ^~~~~~~~~~ tests/bfstd.c:198:2: note: in expansion of macro 'check_strtoend' check_strtoend("0xDEFG", "G", 0, 0xDEF); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:53:4: note: in expansion of macro 'bfs_diag' (bfs_diag(__VA_ARGS__)) \ ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:191:3: note: in expansion of macro 'bfs_check' bfs_check(ll == (n), "xstrtoll('%s') == %lld (!= %lld)", str, ll, (long long)(n)); \ ^~~~~~~~~ tests/bfstd.c:198:2: note: in expansion of macro 'check_strtoend' check_strtoend("0xDEFG", "G", 0, 0xDEF); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:54:4: note: in expansion of macro 'bfs_diag' (bfs_diag("Check failed: `%s`", str)) ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:191:3: note: in expansion of macro 'bfs_check' bfs_check(ll == (n), "xstrtoll('%s') == %lld (!= %lld)", str, ll, (long long)(n)); \ ^~~~~~~~~ tests/bfstd.c:198:2: note: in expansion of macro 'check_strtoend' check_strtoend("0xDEFG", "G", 0, 0xDEF); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:53:4: note: in expansion of macro 'bfs_diag' (bfs_diag(__VA_ARGS__)) \ ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:192:3: note: in expansion of macro 'bfs_check' bfs_check(strcmp(end, estr) == 0, "xstrtoll('%s'): end == '%s' (!= '%s')", str, end, estr); \ ^~~~~~~~~ tests/bfstd.c:198:2: note: in expansion of macro 'check_strtoend' check_strtoend("0xDEFG", "G", 0, 0xDEF); ^~~~~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:54:4: note: in expansion of macro 'bfs_diag' (bfs_diag("Check failed: `%s`", str)) ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:192:3: note: in expansion of macro 'bfs_check' bfs_check(strcmp(end, estr) == 0, "xstrtoll('%s'): end == '%s' (!= '%s')", str, end, estr); \ ^~~~~~~~~ tests/bfstd.c:198:2: note: in expansion of macro 'check_strtoend' check_strtoend("0xDEFG", "G", 0, 0xDEF); ^~~~~~~~~~~~~~ In file included from tests/tests.h:11:0, from tests/bfstd.c:4: tests/bfstd.c: In function 'check_strwidth': src/bfs.h:77:51: error: 'C' undeclared (first use in this function) #define BFS_VA_IF(...) BFS_VA_IF_AB ## __VA_OPT__(C) ^ tests/tests.h:52:2: note: in expansion of macro 'BFS_VA_IF' BFS_VA_IF(__VA_ARGS__) \ ^~~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:203:2: note: in expansion of macro 'bfs_check' bfs_check(xstrwidth("Hello world") == 11); ^~~~~~~~~ In file included from tests/tests.h:13:0, from tests/bfstd.c:4: src/diag.h:23:10: error: expected expression before ')' token ((format) ? "%s: %s@%s:%d: " format "%s" : "") ^ src/diag.h:41:12: note: in expansion of macro 'BFS_DIAG_FORMAT_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~~~ tests/tests.h:53:4: note: in expansion of macro 'bfs_diag' (bfs_diag(__VA_ARGS__)) \ ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:203:2: note: in expansion of macro 'bfs_check' bfs_check(xstrwidth("Hello world") == 11); ^~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:54:4: note: in expansion of macro 'bfs_diag' (bfs_diag("Check failed: `%s`", str)) ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:203:2: note: in expansion of macro 'bfs_check' bfs_check(xstrwidth("Hello world") == 11); ^~~~~~~~~ src/diag.h:23:10: error: expected expression before ')' token ((format) ? "%s: %s@%s:%d: " format "%s" : "") ^ src/diag.h:41:12: note: in expansion of macro 'BFS_DIAG_FORMAT_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~~~ tests/tests.h:53:4: note: in expansion of macro 'bfs_diag' (bfs_diag(__VA_ARGS__)) \ ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:204:2: note: in expansion of macro 'bfs_check' bfs_check(xstrwidth("Hello\1world") == 10); ^~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:54:4: note: in expansion of macro 'bfs_diag' (bfs_diag("Check failed: `%s`", str)) ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:204:2: note: in expansion of macro 'bfs_check' bfs_check(xstrwidth("Hello\1world") == 10); ^~~~~~~~~ In file included from tests/tests.h:11:0, from tests/bfstd.c:4: tests/bfstd.c: In function 'check_getdelim': src/bfs.h:77:51: error: 'C' undeclared (first use in this function) #define BFS_VA_IF(...) BFS_VA_IF_AB ## __VA_OPT__(C) ^ tests/tests.h:63:2: note: in expansion of macro 'BFS_VA_IF' BFS_VA_IF(__VA_ARGS__) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:211:7: note: in expansion of macro 'bfs_echeck' if (bfs_echeck(chunk, "xgetdelim()")) { ^~~~~~~~~~ In file included from tests/tests.h:13:0, from tests/bfstd.c:4: src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:211:7: note: in expansion of macro 'bfs_echeck' if (bfs_echeck(chunk, "xgetdelim()")) { ^~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:211:7: note: in expansion of macro 'bfs_echeck' if (bfs_echeck(chunk, "xgetdelim()")) { ^~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:211:7: note: in expansion of macro 'bfs_echeck' if (bfs_echeck(chunk, "xgetdelim()")) { ^~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:211:7: note: in expansion of macro 'bfs_echeck' if (bfs_echeck(chunk, "xgetdelim()")) { ^~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:53:4: note: in expansion of macro 'bfs_diag' (bfs_diag(__VA_ARGS__)) \ ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:212:4: note: in expansion of macro 'bfs_check' bfs_check(strcmp(chunk, expected) == 0, "xgetdelim() == '%s' (!= '%s')", chunk, expected); ^~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:54:4: note: in expansion of macro 'bfs_diag' (bfs_diag("Check failed: `%s`", str)) ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:212:4: note: in expansion of macro 'bfs_check' bfs_check(strcmp(chunk, expected) == 0, "xgetdelim() == '%s' (!= '%s')", chunk, expected); ^~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:53:4: note: in expansion of macro 'bfs_diag' (bfs_diag(__VA_ARGS__)) \ ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:215:3: note: in expansion of macro 'bfs_check' bfs_check(!chunk && errno == 0, "xgetdelim() == '%s' (!= NULL)", chunk); ^~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ tests/tests.h:54:4: note: in expansion of macro 'bfs_diag' (bfs_diag("Check failed: `%s`", str)) ^~~~~~~~ tests/tests.h:49:28: note: in expansion of macro 'bfs_check_' bfs_check_impl((cond) || (bfs_check_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~ tests/bfstd.c:215:3: note: in expansion of macro 'bfs_check' bfs_check(!chunk && errno == 0, "xgetdelim() == '%s' (!= NULL)", chunk); ^~~~~~~~~ In file included from tests/tests.h:11:0, from tests/bfstd.c:4: tests/bfstd.c: In function 'check_xgetdelim': src/bfs.h:77:51: error: 'C' undeclared (first use in this function) #define BFS_VA_IF(...) BFS_VA_IF_AB ## __VA_OPT__(C) ^ src/diag.h:96:22: note: in expansion of macro 'BFS_VA_IF' ((cond) ? (void)0 : BFS_VA_IF(__VA_ARGS__) \ ^~~~~~~~~ tests/bfstd.c:224:2: note: in expansion of macro 'bfs_everify' bfs_everify(file, "fmemopen()"); ^~~~~~~~~~~ In file included from tests/tests.h:13:0, from tests/bfstd.c:4: src/diag.h:70:52: error: expected expression before ',' token (bfs_abort(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:70:4: note: in expansion of macro 'bfs_abort' (bfs_abort(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~~ src/diag.h:97:4: note: in expansion of macro 'bfs_eabort' (bfs_eabort(__VA_ARGS__)) \ ^~~~~~~~~~ tests/bfstd.c:224:2: note: in expansion of macro 'bfs_everify' bfs_everify(file, "fmemopen()"); ^~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:63:39: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_abortf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:71:4: note: in expansion of macro 'bfs_abort' (bfs_abort("%s", errstr())) ^~~~~~~~~ src/diag.h:97:4: note: in expansion of macro 'bfs_eabort' (bfs_eabort(__VA_ARGS__)) \ ^~~~~~~~~~ tests/bfstd.c:224:2: note: in expansion of macro 'bfs_everify' bfs_everify(file, "fmemopen()"); ^~~~~~~~~~~ src/diag.h:70:41: error: expected ')' before '__VA_OPT__' (bfs_abort(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:70:4: note: in expansion of macro 'bfs_abort' (bfs_abort(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~~ src/diag.h:98:4: note: in expansion of macro 'bfs_eabort' (bfs_eabort("Assertion failed: `%s`", #cond))) ^~~~~~~~~~ tests/bfstd.c:224:2: note: in expansion of macro 'bfs_everify' bfs_everify(file, "fmemopen()"); ^~~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:63:39: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_abortf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:71:4: note: in expansion of macro 'bfs_abort' (bfs_abort("%s", errstr())) ^~~~~~~~~ src/diag.h:98:4: note: in expansion of macro 'bfs_eabort' (bfs_eabort("Assertion failed: `%s`", #cond))) ^~~~~~~~~~ tests/bfstd.c:224:2: note: in expansion of macro 'bfs_everify' bfs_everify(file, "fmemopen()"); ^~~~~~~~~~~ src/diag.h:48:51: error: expected expression before ',' token (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:235:2: note: in expansion of macro 'bfs_echeck' bfs_echeck(fclose(file) == 0, "fclose()"); ^~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:64:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag(__VA_ARGS__)) \ ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:235:2: note: in expansion of macro 'bfs_echeck' bfs_echeck(fclose(file) == 0, "fclose()"); ^~~~~~~~~~ src/diag.h:48:40: error: expected ')' before '__VA_OPT__' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^ src/diag.h:29:48: note: in definition of macro 'BFS_DIAG_ARGS_' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^~~~~~~~~~~ src/diag.h:48:4: note: in expansion of macro 'bfs_diag' (bfs_diag(format ": %s", __VA_ARGS__ __VA_OPT__(,) errstr())) \ ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:235:2: note: in expansion of macro 'bfs_echeck' bfs_echeck(fclose(file) == 0, "fclose()"); ^~~~~~~~~~ src/diag.h:29:60: error: expected ')' before '__VA_OPT__' xgetprogname(), __func__, __FILE__, __LINE__, __VA_ARGS__ __VA_OPT__(,) "\n" ^ src/diag.h:41:38: note: in expansion of macro 'BFS_DIAG_ARGS_' bfs_diagf(BFS_DIAG_FORMAT_(format), BFS_DIAG_ARGS_(__VA_ARGS__)) ^~~~~~~~~~~~~~ src/diag.h:49:4: note: in expansion of macro 'bfs_diag' (bfs_diag("%s", errstr())) ^~~~~~~~ tests/tests.h:65:4: note: in expansion of macro 'bfs_ediag' (bfs_ediag("Check failed: `%s`", str)) ^~~~~~~~~ tests/tests.h:60:28: note: in expansion of macro 'bfs_echeck_' bfs_check_impl((cond) || (bfs_echeck_(#cond, __VA_ARGS__), false)) ^~~~~~~~~~~ tests/bfstd.c:235:2: note: in expansion of macro 'bfs_echeck' bfs_echeck(fclose(file) == 0, "fclose()"); ^~~~~~~~~~ cc1: some warnings being treated as errors gmake: *** [Makefile:236: obj/tests/bfstd.o] Error 1 *** Error code 2 Stop. make[1]: stopped in /usr/pkgsrc/sysutils/bfs *** Error code 1 Stop. make: stopped in /usr/pkgsrc/sysutils/bfs