MSVC compilers complain about snprintf

Started by Andrew Dunstanabout 7 years ago4 messages
#1Andrew Dunstan
andrew.dunstan@2ndquadrant.com

The MSVC compilers are whingeing about recent changes in snprintf.c:

src\port\snprintf.c(1051): warning C4146: unary minus operator
applied to unsigned type, result still unsigned

The line in question reads:

uvalue = -(unsigned long long) value;

cheers

andrew

--
Andrew Dunstan https://www.2ndQuadrant.com
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

#2Andres Freund
andres@anarazel.de
In reply to: Andrew Dunstan (#1)
Re: MSVC compilers complain about snprintf

Hi,

On 2018-10-17 17:27:14 -0400, Andrew Dunstan wrote:

The MSVC compilers are whingeing about recent changes in snprintf.c:

src\port\snprintf.c(1051): warning C4146: unary minus operator
applied to unsigned type, result still unsigned

The line in question reads:

uvalue = -(unsigned long long) value;

Yea, that's intended. Is there a way to silence that one, but just keep
the code largely similar?

Greetings,

Andres Freund

#3Andrew Dunstan
andrew.dunstan@2ndquadrant.com
In reply to: Andres Freund (#2)
Re: MSVC compilers complain about snprintf

On 10/17/2018 05:31 PM, Andres Freund wrote:

Hi,

On 2018-10-17 17:27:14 -0400, Andrew Dunstan wrote:

The MSVC compilers are whingeing about recent changes in snprintf.c:

src\port\snprintf.c(1051): warning C4146: unary minus operator
applied to unsigned type, result still unsigned

The line in question reads:

uvalue = -(unsigned long long) value;

Yea, that's intended. Is there a way to silence that one, but just keep
the code largely similar?

Probably something like:

#if (_MSC_VER >= 1800)
#pragma warning(disable:4146)
#endif

based on float.h.

cheers

andrew

--
Andrew Dunstan https://www.2ndQuadrant.com
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

#4Tom Lane
tgl@sss.pgh.pa.us
In reply to: Andrew Dunstan (#1)
Re: MSVC compilers complain about snprintf

Andrew Dunstan <andrew.dunstan@2ndquadrant.com> writes:

The MSVC compilers are whingeing about recent changes in snprintf.c:
src\port\snprintf.c(1051): warning C4146: unary minus operator
applied to unsigned type, result still unsigned

Yeah, see commit 4868e4468590bc32f9c3afed4ec795d6a7732c9d.

The law of conservation of warning messages seems to be at work :-(

regards, tom lane