FNFT
Loading...
Searching...
No Matches
Macros | Functions
#include "fnft_errwarn.h"
Include dependency graph for fnft__errwarn.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Macros

#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")."
 

Functions

FNFT_INT fnft__errmsg_aux (const FNFT_INT ec, const char *func, const FNFT_INT line, const char *msg)
 
void fnft__warn_aux (const char *func, const FNFT_INT line, const char *msg)
 

Detailed Description

Provides macros for raising and checking errors.