X-Git-Url: http://git.ozlabs.org/?p=ccan;a=blobdiff_plain;f=ccan%2Fcompiler%2Fcompiler.h;h=42245646c42ff772bcc6376ffc54ac79a1c1aca1;hp=fcb89c8f2a68a9aa90f5cba4746a98910c0a551d;hb=48c1824304ac2d8aeaef7b8a55c7d9edc8992f63;hpb=e764d0a27d2b6748ea7d343042ec7d6dda1f6aae diff --git a/ccan/compiler/compiler.h b/ccan/compiler/compiler.h index fcb89c8f..42245646 100644 --- a/ccan/compiler/compiler.h +++ b/ccan/compiler/compiler.h @@ -1,3 +1,4 @@ +/* CC0 (Public domain) - see LICENSE file for details */ #ifndef CCAN_COMPILER_H #define CCAN_COMPILER_H #include "config.h" @@ -74,6 +75,20 @@ #else #define CONST_FUNCTION #endif + +#ifndef PURE_FUNCTION +#if HAVE_ATTRIBUTE_PURE +/** + * PURE_FUNCTION - a function is pure + * + * A pure function is one that has no side effects other than it's return value + * and uses no inputs other than it's arguments and global variables. + */ +#define PURE_FUNCTION __attribute__((__pure__)) +#else +#define PURE_FUNCTION +#endif +#endif #endif #if HAVE_ATTRIBUTE_UNUSED