32 lines
907 B
C
32 lines
907 B
C
#ifndef XMLRPC_C_C_UTIL_H_INCLUDED
|
|
#define XMLRPC_C_C_UTIL_H_INCLUDED
|
|
|
|
/* C language stuff. Doesn't involve any libraries that aren't part of
|
|
the compiler.
|
|
*/
|
|
|
|
#define ARRAY_SIZE(x) (sizeof(x)/sizeof(x[0]))
|
|
|
|
/* XMLRPC_PRINTF_ATTR lets the GNU compiler check printf-type
|
|
calls to be sure the arguments match the format string, thus preventing
|
|
runtime segmentation faults and incorrect messages.
|
|
*/
|
|
#ifdef __GNUC__
|
|
#define XMLRPC_PRINTF_ATTR(a,b) __attribute__ ((format (printf, a, b)))
|
|
#define XMLRPC_NORETURN_ATTR __attribute__((noreturn))
|
|
#else
|
|
#define XMLRPC_PRINTF_ATTR(a,b)
|
|
#define XMLRPC_NORETURN_ATTR
|
|
#endif
|
|
|
|
/* XMLRPC_DLLEXPORT is an attribute of an external symbols that says it
|
|
is to be exported from a library that contains it.
|
|
*/
|
|
#if defined(_DLL) && defined(_MSC_VER) && _MSC_VER >= 1500
|
|
#define XMLRPC_DLLEXPORT __declspec(dllexport)
|
|
#else
|
|
#define XMLRPC_DLLEXPORT
|
|
#endif
|
|
|
|
#endif
|