Hi,
The file libiberty/xstrerror.c contains the following fragment
#ifdef VMS
#include <errno.h>
#if !defined (__STRICT_ANSI__) && !defined (__HIDE_FORBIDDEN_NAMES)
extern char *strerror (int,...);
#define DONT_DECLARE_STRERROR
#endif
#endif /* VMS */
#ifndef DONT_DECLARE_STRERROR
extern char *strerror (int);
#endif
Since we have been requiring ISO C90 now (and libiberty has been almost
completely converted to ISO C minus K&R style definition), I'm
wondering wheter the above declaration of strerror should not be
replaced with a #include <string.h> which brings in the proper
system-supplied declaration. I'm very willing to believe that VMS may
still need some special treatments (for lack of actual recent extensive
experience with that plateform) but I think that for the vast majority
of supported host+build plateforms, it would suffice to #include
<string.h> and dispence with the #ifndef ad hockery.
(The reason that pops up is that a C++ compiler -- namely g++ on my
system -- cannot agree with the redeclaration since it is not properly
surrounded with the appropriate extern block, and I suspect that some
plateforms may add "transparent" exception specification).
Do you agree that the declaration could safely be replaced with a
#include <string.h>?
Thanks,
-- Gaby