r22227: merge from samba4:
authorStefan Metzmacher <metze@samba.org>
Sun, 15 Apr 2007 21:13:48 +0000 (21:13 +0000)
committerGerald (Jerry) Carter <jerry@samba.org>
Wed, 10 Oct 2007 17:19:21 +0000 (12:19 -0500)
move discard_const macros to librelace

metze

source/lib/replace/replace.h
source/lib/replace/strptime.c

index 7d6dcec7f1271cc906765e56f767b41aecc9a333..959d44b33e75a778c2b35b3254e3b0380151419b 100644 (file)
 #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]
index 8fb919472e10a27bd26068ef5d05e2c02cf4195d..d415b7826e5957e5465b31562ee3d54f5cac8d8f 100644 (file)
@@ -974,7 +974,7 @@ strptime_internal (rp, fmt, tm, decided, era_cnt)
   if (want_xday && !have_yday)
     day_of_the_year (tm);
 
-  return (char *) rp;
+  return discard_const_p(char, rp);
 }