summaryrefslogtreecommitdiff
path: root/source3/lib/replace/replace.h
diff options
context:
space:
mode:
authorStefan Metzmacher <metze@samba.org>2007-04-15 21:13:48 +0000
committerGerald (Jerry) Carter <jerry@samba.org>2007-10-10 12:19:21 -0500
commitf5b7197625ed235fa454ff0f4a2ba930f55e174e (patch)
treebf375ad4de2af819f4dcf4b007c2c88af448f326 /source3/lib/replace/replace.h
parent0ca5717a9a90ced983a60d1e7b27882fbbaf388b (diff)
downloadsamba-f5b7197625ed235fa454ff0f4a2ba930f55e174e.tar.gz
samba-f5b7197625ed235fa454ff0f4a2ba930f55e174e.tar.bz2
samba-f5b7197625ed235fa454ff0f4a2ba930f55e174e.zip
r22227: merge from samba4:
move discard_const macros to librelace metze (This used to be commit 8f4a39127f7b560a7a609e74423ccb88f53e545e)
Diffstat (limited to 'source3/lib/replace/replace.h')
-rw-r--r--source3/lib/replace/replace.h23
1 files changed, 23 insertions, 0 deletions
diff --git a/source3/lib/replace/replace.h b/source3/lib/replace/replace.h
index 7d6dcec7f1..959d44b33e 100644
--- a/source3/lib/replace/replace.h
+++ b/source3/lib/replace/replace.h
@@ -79,6 +79,29 @@
#include <stddef.h>
#endif
+/**
+ this is a warning hack. The idea is to use this everywhere that we
+ get the "discarding const" warning from gcc. That doesn't actually
+ fix the problem of course, but it means that when we do get to
+ cleaning them up we can do it by searching the code for
+ discard_const.
+
+ It also means that other error types aren't as swamped by the noise
+ of hundreds of const warnings, so we are more likely to notice when
+ we get new errors.
+
+ Please only add more uses of this macro when you find it
+ _really_ hard to fix const warnings. Our aim is to eventually use
+ this function in only a very few places.
+
+ Also, please call this via the discard_const_p() macro interface, as that
+ makes the return type safe.
+*/
+#define discard_const(ptr) ((void *)((intptr_t)(ptr)))
+
+/** Type-safe version of discard_const */
+#define discard_const_p(type, ptr) ((type *)discard_const(ptr))
+
#ifndef HAVE_STRERROR
extern char *sys_errlist[];
#define strerror(i) sys_errlist[i]