Strange warning with clang and 9RC1 (ntohs)

Axel Gonzalez loox at e-shell.net
Tue Nov 1 01:35:12 UTC 2011


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.



More information about the freebsd-current mailing list