Go to the documentation of this file.
33 #define XSTRINGIFY(x) #x
34 #define STRINGIFY(x) XSTRINGIFY(x)
35 #define JOINSTR(x,y) XSTRINGIFY(x ## y)
41 # define XHEXIFY4(b1,b2,b3,b4) (0x ## b1 ## b2 ## b3 ## b4)
42 # define HEXIFY4(b1,b2,b3,b4) XHEXIFY4(b1, b2, b3, b4)
44 # define XHEXIFY3(b1,b2,b3) (0x ## b1 ## b2 ## b3)
45 # define HEXIFY3(b1,b2,b3) XHEXIFY3(b1, b2, b3)
47 # define XHEXIFY2(b1,b2) (0x ## b1 ## b2)
48 # define HEXIFY2(b1,b2) XHEXIFY2(b1, b2)
50 # define XHEXIFY(b1) (0x ## b1)
51 # define HEXIFY(b1) XHEXIFY(b1)
57 #define UNUSED_VAR(_x) ((void)_x)
62 #define SIZEOF_MEMBER(_t, _m) sizeof(((_t *)0)->_m)
69 # define CC_HINT(_x) __attribute__ ((_x))
74 #ifdef HAVE_ATTRIBUTE_BOUNDED
75 # define CC_BOUNDED(_x, ...) CC_HINT(__bounded__(_x, ## __VA_ARGS__))
77 # define CC_BOUNDED(...)
83 #define PRAGMA(_x) _Pragma(#_x)
88 #if defined(__GNUC__) && ((__GNUC__ * 100) + __GNUC_MINOR__) >= 402
89 # define DIAG_PRAGMA(_x) PRAGMA(GCC diagnostic _x)
90 # if ((__GNUC__ * 100) + __GNUC_MINOR__) >= 406
91 # define DIAG_OFF(_x) DIAG_PRAGMA(push) DIAG_PRAGMA(ignored JOINSTR(-W,_x))
92 # define DIAG_ON(_x) DIAG_PRAGMA(pop)
94 # define DIAG_OFF(_x) DIAG_PRAGMA(ignored JOINSTR(-W,_x))
95 # define DIAG_ON(_x) DIAG_PRAGMA(warning JOINSTR(-W,_x))
97 #elif defined(__clang__) && ((__clang_major__ * 100) + __clang_minor__ >= 208)
98 # define DIAG_PRAGMA(_x) PRAGMA(clang diagnostic _x)
99 # define DIAG_OFF(_x) DIAG_PRAGMA(push) DIAG_PRAGMA(ignored JOINSTR(-W,_x))
100 # define DIAG_ON(_x) DIAG_PRAGMA(pop)
102 # define DIAG_OFF(_x)
110 # define DIAG_OPTIONAL DIAG_OFF(unknown-pragmas)
112 # define DIAG_OPTIONAL DIAG_OFF(pragmas)
119 # define USES_APPLE_DEPRECATED_API DIAG_OFF(deprecated-declarations)
120 # define USES_APPLE_RST DIAG_ON(deprecated-declarations)
122 # define USES_APPLE_DEPRECATED_API
123 # define USES_APPLE_RST
126 #if defined(__GNUC__)
128 # define RCSID(id) static char const rcsid[] __attribute__ ((used)) = id;
129 # define RCSIDH(h, id) static char const rcsid_ ## h [] __attribute__ ((used)) = id;
130 #elif defined(__SUNPRO_C)
132 # define RCSID(id) PRAGMA(sun ident id)
133 # define RCSIDH(h, id) PRAGMA(sun ident id)
136 # define RCSIDH(h, id)