diff options
Diffstat (limited to 'src/compiler.h')
| -rw-r--r-- | src/compiler.h | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/src/compiler.h b/src/compiler.h new file mode 100644 index 0000000..6a5ce4a --- /dev/null +++ b/src/compiler.h @@ -0,0 +1,42 @@ +/** + * \file compiler.h + * Part of common.h, defines macros for hints to the compiler. + */ + +#ifndef COMPILER_H +#define COMPILER_H + +#if HAVE___ATTRIBUTE__ +# define MALLOC __attribute__((malloc)) +# define NONULL __attribute__((nonnull)) +# define NONULL_ARGS(...) __attribute__((nonnull (__VA_ARGS__))) +# define PRINTF(_n,_m) __attribute__((format (printf, (_n), (_m)))) +# define UNUSED __attribute__((unused)) +#else +# warning Less compile time checks as compiler is unsupported +/** + * Mark a function as always returning a new unique pointer or NULL + */ +# define MALLOC +/** + * Mark a function as not taking NULL to any of its pointer parameters + */ +# define NONULL +/** + * Mark a function as not taking NULL to the given list of pointer parameters. + * The list of parameters is 1 based. + */ +# define NONULL_ARGS(...) +/** + * Mark a function as taking printf format style parameter. + * @param _n the 1 based index of the format parameter + * @param _m the 1 based index of the first variable list parameter + */ +# define PRINTF(_n,_m) +/** + * Mark a function paramter as being unused + */ +# define UNUSED +#endif + +#endif /* COMPILER_H */ |
