NetBSD-Bugs archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: toolchain/53618: bogus warnings from printf %u and ntohs with -O1



The following reply was made to PR toolchain/53618; it has been noted by GNATS.

From: Valery Ushakov <uwe%stderr.spb.ru@localhost>
To: gnats-bugs%NetBSD.org@localhost
Cc: 
Subject: Re: toolchain/53618: bogus warnings from printf %u and ntohs with -O1
Date: Fri, 21 Sep 2018 14:16:01 +0300

 On Fri, Sep 21, 2018 at 07:40:01 +0000, Joerg Sonnenberger wrote:
 
 > From: Joerg Sonnenberger <joerg%bec.de@localhost>
 > To: gnats-bugs%NetBSD.org@localhost
 > Cc: toolchain-manager%netbsd.org@localhost, gnats-admin%netbsd.org@localhost,
 > 	netbsd-bugs%netbsd.org@localhost
 > Subject: Re: toolchain/53618: bogus warnings from printf %u and ntohs with -O1
 > Date: Fri, 21 Sep 2018 09:36:59 +0200
 > 
 >  On Wed, Sep 19, 2018 at 03:40:00AM +0000, murray+net%ip-64-139-1-69.sjc.megapath.net@localhost wrote:
 >  > The test case below gets warnings like the following:
 >  > 
 >  > foo.c:17:10: warning: format '%u' expects argument of type 'unsigned int', but argument 2 has type 'int' [-Wformat=]
 >  >    printf("Foo %u\n", ntohs(x));
 >  
 >  ntohs(x) has two possible expansions:
 >     (x)
 >     (unsigned short expression)
 >  
 >  In the second case, it will be implicitly promoted to int. That's what
 >  the warning is about.
 
 Isn't that what the 'h' length modifier (i.e. "%hu") is for?
 
 -uwe
 


Home | Main Index | Thread Index | Old Index