Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 01 Nov 2011 01:10:36 -0600
From:      Axel Gonzalez <loox@e-shell.net>
To:        Roman Divacky <rdivacky@freebsd.org>
Cc:        freebsd-current@freebsd.org
Subject:   Re: Strange warning with clang and 9RC1 (ntohs)
Message-ID:  <2104381.NqWTZMXtng@moonlight.e-shell.tk>
In-Reply-To: <20111101065651.GA27751@freebsd.org>
References:  <1562351.Ln9lEKl2rv@moonlight.e-shell.tk> <20111101065651.GA27751@freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help

Here is the output (short version):

...
(snip)

static __inline __uint16_t
__bswap16_var(__uint16_t _x)
{

 return ((__uint16_t)((_x) << 8 | (_x) >> 8));
}

...
(snip)


int main()
{
 uint16_t x = (__builtin_constant_p(80) ? (__uint16_t)(((__uint16_t)(80)) << 8 
| ((__uint16_t)(80)) >> 8) : __bswap16_var(80));
 printf("%hu\n", (uint16_t)(__builtin_constant_p(x) ? (__uint16_t)
(((__uint16_t)(x)) << 8 | ((__uint16_t)(x)) >> 8) : __bswap16_var(x)));
 printf("%hu\n", (__builtin_constant_p(x) ? (__uint16_t)(((__uint16_t)(x)) << 
8 | ((__uint16_t)(x)) >> 8) : __bswap16_var(x)));
 return (0);
}


% clang -E ntohs.c > ntohs_.c
% clang -Wall -o ntohs ntohs_.c 
In file included from ntohs.c:1:
ntohs.c:8:12: warning: conversion specifies type 'unsigned short' but the 
argument has type
      'int' [-Wformat]
  ...%hu\n", (__builtin_constant_p(x) ? (__uint16_t)(((__uint16_t)(x)) << 8 | 
((__uint16_t)(x)) >> 8) : __bswap16_var(x))...
     ~~^     
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                       
     %d                                                                                                                                                                                         
1 warning generated. 



And I missed it the first mail:

FreeBSD moonlight 9.0-RC1 FreeBSD 9.0-RC1 #0: Fri Oct 28 22:53:45 CDT 2011     
toor@moonlight:/usr/obj/usr/src/sys/LXCORE9  i386


Thanks!

A


On Tuesday 01 November 2011 07:56:51 Roman Divacky wrote:
> It doesnt warn here. Can you check with "clang -E" what the ntohs()
> is being expanded to and what the real prototype is?
> 
-- 
Tue Nov  1 01:01:15 2011 GMT

        **
        *****
         ******
         *******
         *******
         ******
        *****
        **      6.




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?2104381.NqWTZMXtng>