Add __pure as attribute. A __pure function can only depend on the
authorJoerg Sonnenberger <joerg@dragonflybsd.org>
Wed, 16 Feb 2005 21:50:00 +0000 (21:50 +0000)
committerJoerg Sonnenberger <joerg@dragonflybsd.org>
Wed, 16 Feb 2005 21:50:00 +0000 (21:50 +0000)
arguments, not on global memory. A __pure2 function in contrast
just has to return the same value for the same arguments. It can
use a hash table or similiar means.

For GCC before 3.0 __pure is mapped to __pure2.

Inspired-by: FreeBSD
sys/sys/cdefs.h

index a8eedfe..21b64b2 100644 (file)
@@ -35,7 +35,7 @@
  *
  *     @(#)cdefs.h     8.8 (Berkeley) 1/9/95
  * $FreeBSD: src/sys/sys/cdefs.h,v 1.28.2.8 2002/09/18 04:05:13 mikeh Exp $
- * $DragonFly: src/sys/sys/cdefs.h,v 1.14 2005/02/04 22:28:23 joerg Exp $
+ * $DragonFly: src/sys/sys/cdefs.h,v 1.15 2005/02/16 21:50:00 joerg Exp $
  */
 
 #ifndef        _SYS_CDEFS_H_
 #ifdef lint
 
 #define __dead2
+#define        __pure
 #define __pure2
 #define __unused
 #define __packed
 #define __section(x)    __attribute__((__section__(x)))
 #endif
 
+#if __GNUC_PREREQ__(3, 0)
+#define        __pure          __attribute__((__pure__))
+#else
+#define        __pure          __pure2
+#endif
+
 #if __GNUC_PREREQ__(3, 1)
 #define __always_inline __attribute__((__always_inline__))
 #else