[systemd-devel] [PATCH] fix compiler warning
Ronny Chevalier
chevalier.ronny at gmail.com
Sun Mar 15 04:53:35 PDT 2015
2015-03-14 17:54 GMT+01:00 Shawn Landden <shawn at churchofgit.com>:
> On Sat, Mar 14, 2015 at 6:31 AM, Ronny Chevalier <chevalier.ronny at gmail.com>
> wrote:
>>
>> 2015-03-11 4:42 GMT+01:00 Shawn Landden <shawn at churchofgit.com>:
>> > warning: pointer/integer type mismatch in conditional expression
>> > ---
>> > src/shared/socket-util.c | 4 ++--
>> > 1 file changed, 2 insertions(+), 2 deletions(-)
>> >
>> > diff --git a/src/shared/socket-util.c b/src/shared/socket-util.c
>> > index 5820279..73e1177 100644
>> > --- a/src/shared/socket-util.c
>> > +++ b/src/shared/socket-util.c
>> > @@ -475,8 +475,8 @@ int sockaddr_port(const struct sockaddr *_sa) {
>> > return -EAFNOSUPPORT;
>> >
>> > return ntohs(sa->sa.sa_family == AF_INET6 ?
>> > - sa->in6.sin6_port :
>> > - sa->in.sin_port);
>> > + (uint16_t)sa->in6.sin6_port :
>> > + (uint16_t)sa->in.sin_port);
>> > }
>> >
>>
>> Hi,
>>
>> I don't see any warning, and the man (man netinet_in.h) says that
>> sin_port and sin6_port are of type in_port_t which is equivalent to
>> uint16_t.
>
>
> in_port_t and in6_port_t. If the type returned by a ternary operator is not
> identical gcc-5 warns, even though they are both backed by uint16_t and thus
> there is no violation.
netinet/in.h does not provide in6_port_t according to the manpage. I
even check with the glibc and on master there is no mention of
in6_port_t.
Maybe you are using another libc?
>>
>>
>> Maybe I'm missing something?
>>
>> Ronny
>> _______________________________________________
>> systemd-devel mailing list
>> systemd-devel at lists.freedesktop.org
>> http://lists.freedesktop.org/mailman/listinfo/systemd-devel
>
>
>
>
> --
> Shawn Landden
More information about the systemd-devel
mailing list