summaryrefslogtreecommitdiff
path: root/apt-pkg/contrib
diff options
context:
space:
mode:
authorDavid Kalnischkies <kalnischkies@gmail.com>2009-12-19 14:25:20 +0100
committerDavid Kalnischkies <kalnischkies@gmail.com>2009-12-19 14:25:20 +0100
commit7d15572bc3124b15c043e38bdc3d90bcc94f108a (patch)
treed68910aafd9e00304596022475fba76e0c6d2365 /apt-pkg/contrib
parent773e2c1fe5fd1a315ffaaf79f2f2e4a9e975649a (diff)
add optional gcc features as deprecated, unused and (un)likely
Diffstat (limited to 'apt-pkg/contrib')
-rw-r--r--apt-pkg/contrib/system.h22
1 files changed, 22 insertions, 0 deletions
diff --git a/apt-pkg/contrib/system.h b/apt-pkg/contrib/system.h
index 7ec3d7feb..f68df6265 100644
--- a/apt-pkg/contrib/system.h
+++ b/apt-pkg/contrib/system.h
@@ -55,4 +55,26 @@
#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