This commit is contained in:
Nikita Ivanov 2022-08-02 21:04:14 +05:00
parent 462f75761a
commit d09539f627
No known key found for this signature in database
GPG Key ID: 6E656AC5B97B5133

View File

@ -15,30 +15,30 @@
#define FUNCFAILED(f, ...) \ #define FUNCFAILED(f, ...) \
PRINTINTERR(f "() failed" __VA_OPT__(": %s", __VA_ARGS__)) PRINTINTERR(f "() failed" __VA_OPT__(": %s", __VA_ARGS__))
#define ERRCHK_PRINT_(...) \ #define ERRCHK_PRINT_(...) \
do { \ do { \
__VA_OPT__(PRINTINTERR(__VA_ARGS__);) \ PRINTINTERR(__VA_ARGS__); \
} while (0) } while (0)
/* /*
* If cond is true, return ERR. Also call print_error or * If cond is true, return ERR. Also call print_error or
* print_errorf if error message or format string is given. * print_errorf if error message or format string is given.
*/ */
#define ERRCHK_RET(cond, ...) \ #define ERRCHK_RET(cond, ...) \
do { \ do { \
if (cond) { \ if (cond) { \
ERRCHK_PRINT_(__VA_ARGS__); \ __VA_OPT__(ERRCHK_PRINT_(__VA_ARGS__);) \
return ERR; \ return ERR; \
} \ } \
} while (0) } while (0)
#define ERRCHK_GOTO(cond, ret, label, ...) \ #define ERRCHK_GOTO(cond, ret, label, ...) \
do { \ do { \
if (cond) { \ if (cond) { \
ERRCHK_PRINT_(__VA_ARGS__); \ __VA_OPT__(ERRCHK_PRINT_(__VA_ARGS__);) \
ret = ERR; \ ret = ERR; \
goto label; \ goto label; \
} \ } \
} while (0) } while (0)
#define ERRCHK_MSG_(x) "'" x "'" #define ERRCHK_MSG_(x) "'" x "'"