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

Reply via email to