Date: Tue, 1 Nov 2011 07:56:51 +0100 From: Roman Divacky <rdivacky@freebsd.org> To: Axel Gonzalez <loox@e-shell.net> Cc: freebsd-current@freebsd.org Subject: Re: Strange warning with clang and 9RC1 (ntohs) Message-ID: <20111101065651.GA27751@freebsd.org> In-Reply-To: <1562351.Ln9lEKl2rv@moonlight.e-shell.tk> References: <1562351.Ln9lEKl2rv@moonlight.e-shell.tk>
next in thread | previous in thread | raw e-mail | index | archive | help
It doesnt warn here. Can you check with "clang -E" what the ntohs()
is being expanded to and what the real prototype is?
On Mon, Oct 31, 2011 at 06:35:18PM -0600, Axel Gonzalez wrote:
>
> I'm getting an strange warning whem compiling with clang (from base) on RC1.
>
> This warning doesn't appear with 8.X and clang from ports.
>
> The warning is strange because ntohs is not int:
>
> uint16_t
> ntohs(uint16_t netshort);
>
>
> Any insight would be appreciated, thanks in advance!
>
> A
>
> ****
>
> % gcc -Wall -o ntohs ntohs.c
> % clang -Wall -o ntohs ntohs.c
> ntohs.c:8:12: warning: conversion specifies type 'unsigned short' but the
> argument has type
> 'int' [-Wformat]
> printf("%hu\n", ntohs(x));
> ~~^ ~~~~~~~~
> %d
> 1 warning generated.
>
>
> #include <stdio.h>
> #include <netinet/in.h>
>
> int main()
> {
> uint16_t x = htons(80);
> printf("%hu\n", (uint16_t)ntohs(x));
> printf("%hu\n", ntohs(x));
> return (0);
> }
>
>
> --
> Mon Oct 31 18:02:13 2011 GMT
>
> **
> ****
> *****
> ******
> ******
> *****
> ****
> ** 5.
>
> _______________________________________________
> freebsd-current@freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-current
> To unsubscribe, send any mail to "freebsd-current-unsubscribe@freebsd.org"
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20111101065651.GA27751>
