Refine the dirname(3) compatibility workaround a bit more.
Right now our workaround is so good that it doesn't throw any warnings on misuse. This means that people will keep on using the old version of dirname(3) silently without fixing their code. Go ahead and change the prototype of __old_dirname() to also use a plain char *, so that we still get a compiler warning. This won't have any negative effect on building older versions of FreeBSD on HEAD, as those are built with -Werror disabled. Differential Revision: https://reviews.freebsd.org/D7844
This commit is contained in:
parent
8ab365d211
commit
beffb02f6b
@ -48,11 +48,11 @@ __END_DECLS
|
||||
*
|
||||
* Apply a workaround where we explicitly link against dirname@FBSD_1.0
|
||||
* in case this function is called on constant strings, instead of
|
||||
* making the build fail.
|
||||
* making the program crash at runtime.
|
||||
*/
|
||||
#if defined(__generic) && !defined(__cplusplus)
|
||||
__BEGIN_DECLS
|
||||
char *__old_dirname(const char *);
|
||||
char *__old_dirname(char *);
|
||||
__END_DECLS
|
||||
__sym_compat(dirname, __old_dirname, FBSD_1.0);
|
||||
#define dirname(x) __generic(x, const char *, __old_dirname, dirname)(x)
|
||||
|
Loading…
Reference in New Issue
Block a user