Re: Re: popen and pclose redefinitions causing many warning in Windows build - Mailing list pgsql-hackers

From Jeff Janes
Subject Re: Re: popen and pclose redefinitions causing many warning in Windows build
Date
Msg-id CAMkU=1yOGDj89sxFJCFq6Yidw8Wb2njroQ9tuXEGF7s9JEROHw@mail.gmail.com
Whole thread Raw
In response to Re: Re: popen and pclose redefinitions causing many warning in Windows build  (Bruce Momjian <bruce@momjian.us>)
List pgsql-hackers
On Wed, May 28, 2014 at 7:38 AM, Bruce Momjian <bruce@momjian.us> wrote:
On Mon, May 26, 2014 at 09:50:42PM +0900, Michael Paquier wrote:
> > x86_64-w64-mingw32-gcc -O2 -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Wendif-labels -Wmissing-format-attribute -Wformat-security -fno-strict-aliasing -fwrapv -fexcess-precision=standard -g -I/home/pgrunner/bf/root/HEAD/pgsql.5100/../pgsql/src/interfaces/libpq -I../../../src/include -I/home/pgrunner/bf/root/HEAD/pgsql.5100/../pgsql/src/include -I../pgsql/src/include/port/win32 -DEXEC_BACKEND -I/c/prog/3p64/include/libxml2  -I/c/prog/3p64/include -I/c/prog/3p64/openssl/include "-I/home/pgrunner/bf/root/HEAD/pgsql.5100/../pgsql/src/include/port/win32"  -c -o parallel.o /home/pgrunner/bf/root/HEAD/pgsql.5100/../pgsql/src/bin/pg_dump/parallel.c
> > c:/mingw/msys/1.0/home/pgrunner/bf/root/HEAD/pgsql.5100/../pgsql/src/bin/pg_dump/parallel.c: In function 'pgpipe':
> > c:/mingw/msys/1.0/home/pgrunner/bf/root/HEAD/pgsql.5100/../pgsql/src/bin/pg_dump/parallel.c:1332:2: warning: overflow in implicit constant conversion [-Woverflow]
> >   handles[0] = handles[1] = INVALID_SOCKET;
> >   ^
> > c:/mingw/msys/1.0/home/pgrunner/bf/root/HEAD/pgsql.5100/../pgsql/src/bin/pg_dump/parallel.c:1386:3: warning: overflow in implicit constant conversion [-Woverflow]
> >    handles[1] = INVALID_SOCKET;
> >    ^
> In mingw-w64, SOCKET_INVALID is defined as ~0:
> http://sourceforge.net/p/mingw-w64/mingw-w64/ci/master/tree/mingw-w64-headers/include/psdk_inc/_socket_types.h
> Is this overflow caused because SOCKET_INVALID corresponds to a 64b
> value in mingw-w64?
> Looking at the code this exists since 9.3.

I think this is caused because the variable is not defined as SOCKET.
The attached patch fixes this.  This should prevent the warning.

Wouldn't it be better to use pgsocket rather than SOCKET?

Cheers,

Jeff

pgsql-hackers by date:

Previous
From: Andres Freund
Date:
Subject: pg_sleep() doesn't work well with recovery conflict interrupts.
Next
From: Peter Geoghegan
Date:
Subject: Re: pg_stat directory and pg_stat_statements