Strange warning with clang and 9RC1 (ntohs)
Roman Divacky
rdivacky at freebsd.org
Tue Nov 1 06:56:58 UTC 2011
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 at freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-current
> To unsubscribe, send any mail to "freebsd-current-unsubscribe at freebsd.org"
More information about the freebsd-current
mailing list