|
#define | FNFT__WARN(msg) fnft__warn_aux(__func__, __LINE__, msg); |
|
#define | FNFT__E_NOMEM FNFT__ERRMSG(FNFT_EC_NOMEM, "Out of memory.") |
|
#define | FNFT__E_INVALID_ARGUMENT(name) FNFT__ERRMSG(FNFT_EC_INVALID_ARGUMENT, FNFT__E_INVALID_ARGUMENT_(name)) |
|
#define | FNFT__E_SUBROUTINE(ec) FNFT__ERRMSG(-abs(ec), "Subroutine failure.") |
|
#define | FNFT__E_DIV_BY_ZERO FNFT__ERRMSG(FNFT_EC_DIV_BY_ZERO, "Division by zero.") |
|
#define | FNFT__E_TEST_FAILED FNFT__ERRMSG(FNFT_EC_TEST_FAILED, "Test failed.") |
|
#define | FNFT__E_OTHER(msg) FNFT__ERRMSG(FNFT_EC_OTHER, msg) |
|
#define | FNFT__E_NOT_YET_IMPLEMENTED(name, msg) FNFT__ERRMSG(FNFT_EC_NOT_YET_IMPLEMENTED, FNFT__E_NOT_YET_IMPLEMENTED_(name,msg)) |
|
#define | FNFT__E_SANITY_CHECK_FAILED(msg) FNFT__ERRMSG(FNFT_EC_SANITY_CHECK_FAILED, FNFT__E_SANITY_CHECK_FAILED_(msg)) |
|
#define | FNFT__E_ASSERTION_FAILED FNFT__ERRMSG(FNFT_EC_ASSERTION_FAILED, "Assertion failed.") |
|
#define | FNFT__CHECK_RETCODE(ret_code, label) {if (ret_code!=FNFT_SUCCESS) {ret_code=FNFT__E_SUBROUTINE(ret_code);goto label;}} |
|
#define | FNFT__CHECK_NOMEM(var, ret_code, label) {if (var==NULL) {ret_code=FNFT__E_NOMEM;goto label;}} |
|
#define | FNFT__ERRMSG(ec, msg) fnft__errmsg_aux(ec, __func__, __LINE__, msg); |
|
#define | FNFT__E_INVALID_ARGUMENT_(name) "Invalid argument "#name"." |
|
#define | FNFT__E_NOT_YET_IMPLEMENTED_(name, msg) "Not yet implemented ("#name"). "#msg |
|
#define | FNFT__E_SANITY_CHECK_FAILED_(msg) "Sanity check failed ("#msg")." |
|
Provides macros for raising and checking errors.