mirror of
https://github.com/samba-team/samba.git
synced 2025-11-22 16:23:49 +03:00
r2632: a new approach to handling const errors. We have had huge numbers of
const warnings for a long time, and no real way to approach a solution. Some of them are unavoidable due to the way the C standard works (for example, any function that provides strchr() like functionality _must_ produce a const warning) I will be converting a bunch of places that currently produce const warnings to use the discard_const_p(). Some of these will be unavoidable const problems, some of them will be ones we will fix up over time. At least this change means we will no longer be swamped with const warnings, and we will easily be able to see when new problems emerge.
This commit is contained in:
committed by
Gerald (Jerry) Carter
parent
2a7e5f0708
commit
fec3288ad6
@@ -1068,5 +1068,7 @@ time_t timegm(struct tm *tm);
|
|||||||
#include <sys/xattr.h>
|
#include <sys/xattr.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#define discard_const_p(type, ptr) (type *)discard_const(ptr)
|
||||||
|
|
||||||
#endif /* _INCLUDES_H */
|
#endif /* _INCLUDES_H */
|
||||||
|
|
||||||
|
|||||||
@@ -931,3 +931,23 @@ BOOL all_zero(const char *ptr, uint_t size)
|
|||||||
return True;
|
return True;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
this is a warning hack. The idea is to use this everywhere that we
|
||||||
|
get the "discarding const" warning from gcc, effectively moving all
|
||||||
|
the warnings to this one place. 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 calls to this function when you find it
|
||||||
|
_really_ hard to fix const warnings. Our aim is to eventually not
|
||||||
|
need this function at all,
|
||||||
|
*/
|
||||||
|
void *discard_const(const void *ptr)
|
||||||
|
{
|
||||||
|
return (void *)ptr;
|
||||||
|
}
|
||||||
|
|||||||
@@ -703,7 +703,7 @@ char *strchr_m(const char *s, char c)
|
|||||||
return NULL;
|
return NULL;
|
||||||
*p = 0;
|
*p = 0;
|
||||||
pull_ucs2_pstring(s2, ws);
|
pull_ucs2_pstring(s2, ws);
|
||||||
return (char *)(s+strlen(s2));
|
return discard_const_p(char, s+strlen(s2));
|
||||||
}
|
}
|
||||||
|
|
||||||
char *strrchr_m(const char *s, char c)
|
char *strrchr_m(const char *s, char c)
|
||||||
@@ -724,7 +724,7 @@ char *strrchr_m(const char *s, char c)
|
|||||||
return NULL;
|
return NULL;
|
||||||
*p = 0;
|
*p = 0;
|
||||||
pull_ucs2_pstring(s2, ws);
|
pull_ucs2_pstring(s2, ws);
|
||||||
return (char *)(s+strlen(s2));
|
return discard_const_p(char, s+strlen(s2));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
Reference in New Issue
Block a user