Nek5000
SEM for Incompressible NS
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
fail.h
Go to the documentation of this file.
1 #ifndef FAIL_H
2 #define FAIL_H
3 
4 #if !defined(NAME_H)
5 #warning "fail.h" requires "name.h"
6 #endif
7 
8 #define die PREFIXED_NAME( die )
9 #define vdiagnostic PREFIXED_NAME(vdiagnostic)
10 #define diagnostic PREFIXED_NAME( diagnostic)
11 #define vfail PREFIXED_NAME(vfail )
12 #define fail PREFIXED_NAME( fail )
13 
14 #ifdef __GNUC__
15 # define ATTRBD __attribute__ ((noreturn))
16 # define ATTRB4V __attribute__ ((format(printf,4,0)))
17 # define ATTRB4 __attribute__ ((format(printf,4,5)))
18 # define ATTRB4DV __attribute__ ((noreturn,format(printf,4,0)))
19 # define ATTRB4D __attribute__ ((noreturn,format(printf,4,5)))
20 #else
21 # define ATTRBD
22 # define ATTRB4V
23 # define ATTRB4
24 # define ATTRB4DV
25 # define ATTRB4D
26 #endif
27 
28 #define DEF_FUNS() \
29  void die(int status) ATTRBD; \
30  void diagnostic(const char *prefix, const char *file, unsigned line, \
31  const char *fmt, ...) ATTRB4 ; \
32  void fail (int status, const char *file, unsigned line, \
33  const char *fmt, ...) ATTRB4D ;
34 #define VDEF_FUNS() \
35  void vdiagnostic(const char *prefix, const char *file, unsigned line, \
36  const char *fmt, va_list ap) ATTRB4V ; \
37  void vfail (int status, const char *file, unsigned line, \
38  const char *fmt, va_list ap) ATTRB4DV ;
39 DEF_FUNS()
40 #ifdef va_arg
41 VDEF_FUNS()
42 #endif
43 
44 #undef VDEF_FUNS
45 #undef DEF_FUNS
46 #undef ATTRB4D
47 #undef ATTRB4DV
48 #undef ATTRB4
49 #undef ATTRB4V
50 #undef ATTRBD
51 
52 #endif
#define VDEF_FUNS()
Definition: fail.h:34
#define DEF_FUNS()
Definition: fail.h:28