Bruno Haible wrote:

There are some other trivial stuff in:
    ./lib/count-leading-zeros.h
    ./lib/count-one-bits.h
    ./lib/iconv.in.h
    ./lib/inttypes.in.h
    ./lib/localtime-buffer.c

which I'll come back to.

Huh? There were no issues with MSVC 14 in these places in my latest round
of testing [1]. Please give details.

I'm wondering about stuff like this; in inttypes.h.in (line 1093):

  _GL_CXXALIAS_RPL (strtoimax, intmax_t, (const char *, char **, int));
  # else
  #  if !@HAVE_DECL_STRTOIMAX@
  #   undef strtoimax
  _GL_FUNCDECL_SYS (strtoimax, intmax_t,
                    (const char *, char **, int) _GL_ARG_NONNULL ((1)));
  #  endif

Why is there a '#undef strtoimax' if there is *NO* declaration for
'strtoimax()'? Isn't 'HAVE_DECL_STRTOIMAX' supposed to be TRUE is so?

If it was vice-versa:
  #  if @HAVE_DECL_STRTOIMAX@
  #   undef strtoimax
  _GL_FUNCDECL_SYS (strtoimax, intmax_t,
                    (const char *, char **, int) _GL_ARG_NONNULL ((1)));
  #  endif

I'd understand it better. Ditto for 'strtoumax()'.

Also an issue with localtime-buffer.c. From MSVC:
  localtime-buffer.c(46) : warning C4717: 'rpl_localtime': recursive on all 
control paths,
    function will cause runtime stack overflow
  localtime-buffer.c(56) : warning C4717: 'rpl_gmtime': recursive on all 
control paths,
    function will cause runtime stack overflow

But if I patch:
--- a/lib/localtime-buffer.c 2017-09-18 14:33:43
+++ b/lib/localtime-buffer.c 2017-09-18 17:29:38
@@ -32,6 +32,9 @@
    On the first call, record the address of the static buffer that
    localtime uses for its result.  */

+#undef localtime
+#undef gmtime
+
 struct tm *
 rpl_localtime (time_t const *timep)
 {

there's no warning.

--
--gv

Reply via email to