X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;ds=sidebyside;f=src%2Ferror.h;h=801ceda310541bfdb733177b938ae4abd9aa4d01;hb=29c51e39acf3554a56aa2adc9451cc5fd70318ae;hp=6eb77a14b12bd1a7aa3905a421f51072ba080304;hpb=4944c86a9318bc5b5578ab145a95c116ffd2c9fd;p=pspp-builds.git diff --git a/src/error.h b/src/error.h index 6eb77a14..801ceda3 100644 --- a/src/error.h +++ b/src/error.h @@ -33,7 +33,7 @@ enum ERR_CLASS_COUNT, /* Number of message classes. */ ERR_CLASS_MASK = 0xf, /* Bitmask for class. */ ERR_VERBOSITY_SHIFT = 4, /* Shift count for verbosity. */ - ERR_VERBOSITY_MASK = 0xf, /* Bitmask for verbosity. */ + ERR_VERBOSITY_MASK = 0xf /* Bitmask for verbosity. */ }; /* If passed to msg() as CLASS, the return value will cause the message @@ -70,9 +70,9 @@ extern int err_verbosity; /* Functions. */ void msg (int class, const char *format, ...) - __attribute__ ((format (printf, 2, 3))); + PRINTF_FORMAT (2, 3); void tmsg (int class, const char *title, const char *format, ...) - __attribute__ ((format (printf, 3, 4))); + PRINTF_FORMAT (3, 4); void err_failure (void); void err_cond_fail (void); @@ -84,7 +84,21 @@ void err_location (struct file_locator *); /* Obscure functions. */ void err_break (void); void err_check_count (void); -void err_hcf (int exit_code) __attribute__ ((noreturn)); +void err_hcf (int exit_code) NO_RETURN; void err_vmsg (const struct error *); +/* Used in panic situations only */ +void request_bug_report_and_abort(const char *msg ); + +void err_assert_fail(const char *expr, const char *file, int line); + +#undef __STRING +#define __STRING(x) #x +#undef assert + + +#define assert(expr) ( (void) ( expr ? (void) 0 : \ + err_assert_fail(__STRING(expr), __FILE__, __LINE__)) ) + + #endif /* error.h */