]> git.saurik.com Git - apt.git/commitdiff
add optional gcc features as deprecated, unused and (un)likely
authorDavid Kalnischkies <kalnischkies@gmail.com>
Sat, 19 Dec 2009 13:25:20 +0000 (14:25 +0100)
committerDavid Kalnischkies <kalnischkies@gmail.com>
Sat, 19 Dec 2009 13:25:20 +0000 (14:25 +0100)
apt-pkg/contrib/system.h

index 7ec3d7feb4d3f53a1b146e5f3bff275c71f108ed..f68df6265c78a4d146bfc85a10a2b78c567b05eb 100644 (file)
 #define CLRFLAG(v,f)   ((v) &=~FLAG(f))
 #define        CHKFLAG(v,f)    ((v) &  FLAG(f) ? true : false)
 
 #define CLRFLAG(v,f)   ((v) &=~FLAG(f))
 #define        CHKFLAG(v,f)    ((v) &  FLAG(f) ? true : false)
 
+// some nice optional GNUC features
+#if __GNUC__ >= 3
+       #define __must_check    __attribute__ ((warn_unused_result))
+       #define __deprecated    __attribute__ ((deprecated))
+       /* likely() and unlikely() can be used to mark boolean expressions
+          as (not) likely true which will help the compiler to optimise */
+       #define likely(x)       __builtin_expect (!!(x), 1)
+       #define unlikely(x)     __builtin_expect (!!(x), 0)
+#else
+       #define __must_check    /* no warn_unused_result */
+       #define __deprecated    /* no deprecated */
+       #define likely(x)       (x)
+       #define unlikely(x)     (x)
+#endif
+
+// cold functions are unlikely() to be called
+#if (__GNUC__ == 4 && __GNUC_MINOR__ >= 3) || __GNUC__ > 4
+       #define __cold  __attribute__ ((__cold__))
+#else
+       #define __cold  /* no cold marker */
+#endif
+
 #endif
 #endif