Fix more warnings

This commit is contained in:
Ulrich Drepper 2011-12-03 21:49:35 -05:00
parent 8a426e1289
commit aff2453df7
10 changed files with 267 additions and 29 deletions

View File

@ -1,5 +1,21 @@
2011-12-03 Ulrich Drepper <drepper@gmail.com> 2011-12-03 Ulrich Drepper <drepper@gmail.com>
* inet/netinet/in.h: Provide versions of IN6_IS_ADDR_UNSPECIFIED,
IN6_IS_ADDR_LOOPBACK, IN6_IS_ADDR_LINKLOCAL, IN6_IS_ADDR_SITELOCAL,
IN6_IS_ADDR_V4MAPPED, IN6_IS_ADDR_V4COMPAT, and IN6_ARE_ADDR_EQUAL
for gcc to avoid warnings.
* inet/Makefile (tests): Add tst-checks.
* inet/tst-checks.c: New file.
* sysdeps/generic/dl-hash.h (_dl_elf_hash): Add attribute to avoid
warning.
* sysdeps/x86_64/multiarch/wmemcmp-c.c: Provide prototype for
__wmemcmp_sse2.
* sysdeps/x86_64/fpu/s_scalbln.c: Removed.
* sysdeps/x86_64/fpu/s_scalbn.c: Removed.
* malloc/mcheck.h: Fix use of incorrect encoding in comment. * malloc/mcheck.h: Fix use of incorrect encoding in comment.
2011-12-02 Ulrich Drepper <drepper@gmail.com> 2011-12-02 Ulrich Drepper <drepper@gmail.com>

View File

@ -1,4 +1,4 @@
# Copyright (C) 1991-2006, 2007, 2009 Free Software Foundation, Inc. # Copyright (C) 1991-2006, 2007, 2009, 2011 Free Software Foundation, Inc.
# This file is part of the GNU C Library. # This file is part of the GNU C Library.
# The GNU C Library is free software; you can redistribute it and/or # The GNU C Library is free software; you can redistribute it and/or
@ -53,7 +53,7 @@ aux := check_pf check_native ifreq
tests := htontest test_ifindex tst-ntoa tst-ether_aton tst-network \ tests := htontest test_ifindex tst-ntoa tst-ether_aton tst-network \
tst-gethnm test-ifaddrs bug-if1 test-inet6_opt tst-ether_line \ tst-gethnm test-ifaddrs bug-if1 test-inet6_opt tst-ether_line \
tst-getni1 tst-getni2 tst-inet6_rth tst-getni1 tst-getni2 tst-inet6_rth tst-checks
include ../Rules include ../Rules
@ -97,5 +97,5 @@ endif
ifeq (yes,$(build-static-nss)) ifeq (yes,$(build-static-nss))
otherlibs += $(nssobjdir)/libnss_files.a $(resolvobjdir)/libnss_dns.a \ otherlibs += $(nssobjdir)/libnss_files.a $(resolvobjdir)/libnss_dns.a \
$(resolvobjdir)/libresolv.a $(resolvobjdir)/libresolv.a
endif endif

View File

@ -1,4 +1,4 @@
/* Copyright (C) 1991-2001, 2003, 2004, 2006, 2007, 2008 /* Copyright (C) 1991-2001, 2003, 2004, 2006, 2007, 2008, 2011
Free Software Foundation, Inc. Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
@ -396,44 +396,96 @@ extern uint16_t htons (uint16_t __hostshort)
# endif # endif
#endif #endif
#define IN6_IS_ADDR_UNSPECIFIED(a) \ #ifdef __GNUC__
# define IN6_IS_ADDR_UNSPECIFIED(a) \
(__extension__ \
({ __const struct in6_addr *__a = (__const struct in6_addr *) (a); \
__a->s6_addr32[0] == 0 \
&& __a->s6_addr32[1] == 0 \
&& __a->s6_addr32[2] == 0 \
&& __a->s6_addr32[3] == 0; }))
# define IN6_IS_ADDR_LOOPBACK(a) \
(__extension__ \
({ __const struct in6_addr *__a = (__const struct in6_addr *) (a); \
__a->s6_addr32[0] == 0 \
&& __a->s6_addr32[1] == 0 \
&& __a->s6_addr32[2] == 0 \
&& __a->s6_addr32[3] == htonl (1); }))
# define IN6_IS_ADDR_LINKLOCAL(a) \
(__extension__ \
({ __const struct in6_addr *__a = (__const struct in6_addr *) (a); \
(__a->s6_addr32[0] & htonl (0xffc00000)) == htonl (0xfe800000); }))
# define IN6_IS_ADDR_SITELOCAL(a) \
(__extension__ \
({ __const struct in6_addr *__a = (__const struct in6_addr *) (a); \
(__a->s6_addr32[0] & htonl (0xffc00000)) == htonl (0xfec00000); }))
# define IN6_IS_ADDR_V4MAPPED(a) \
(__extension__ \
({ __const struct in6_addr *__a = (__const struct in6_addr *) (a); \
__a->s6_addr32[0] == 0 \
&& __a->s6_addr32[1] == 0 \
&& __a->s6_addr32[2] == htonl (0xffff); }))
# define IN6_IS_ADDR_V4COMPAT(a) \
(__extension__ \
({ __const struct in6_addr *__a = (__const struct in6_addr *) (a); \
__a->s6_addr32[0] == 0 \
&& __a->s6_addr32[1] == 0 \
&& __a->s6_addr32[2] == 0 \
&& ntohl (__a->s6_addr32[3]) > 1; }))
# define IN6_ARE_ADDR_EQUAL(a,b) \
(__extension__ \
({ __const struct in6_addr *__a = (__const struct in6_addr *) (a); \
__const struct in6_addr *__b = (__const struct in6_addr *) (b); \
__a->s6_addr32[0] == __b->s6_addr32[0] \
&& __a->s6_addr32[1] == __b->s6_addr32[1] \
&& __a->s6_addr32[2] == __b->s6_addr32[2] \
&& __a->s6_addr32[3] == __b->s6_addr32[3]; }))
#else
# define IN6_IS_ADDR_UNSPECIFIED(a) \
(((__const uint32_t *) (a))[0] == 0 \ (((__const uint32_t *) (a))[0] == 0 \
&& ((__const uint32_t *) (a))[1] == 0 \ && ((__const uint32_t *) (a))[1] == 0 \
&& ((__const uint32_t *) (a))[2] == 0 \ && ((__const uint32_t *) (a))[2] == 0 \
&& ((__const uint32_t *) (a))[3] == 0) && ((__const uint32_t *) (a))[3] == 0)
#define IN6_IS_ADDR_LOOPBACK(a) \ # define IN6_IS_ADDR_LOOPBACK(a) \
(((__const uint32_t *) (a))[0] == 0 \ (((__const uint32_t *) (a))[0] == 0 \
&& ((__const uint32_t *) (a))[1] == 0 \ && ((__const uint32_t *) (a))[1] == 0 \
&& ((__const uint32_t *) (a))[2] == 0 \ && ((__const uint32_t *) (a))[2] == 0 \
&& ((__const uint32_t *) (a))[3] == htonl (1)) && ((__const uint32_t *) (a))[3] == htonl (1))
#define IN6_IS_ADDR_MULTICAST(a) (((__const uint8_t *) (a))[0] == 0xff) # define IN6_IS_ADDR_LINKLOCAL(a) \
#define IN6_IS_ADDR_LINKLOCAL(a) \
((((__const uint32_t *) (a))[0] & htonl (0xffc00000)) \ ((((__const uint32_t *) (a))[0] & htonl (0xffc00000)) \
== htonl (0xfe800000)) == htonl (0xfe800000))
#define IN6_IS_ADDR_SITELOCAL(a) \ # define IN6_IS_ADDR_SITELOCAL(a) \
((((__const uint32_t *) (a))[0] & htonl (0xffc00000)) \ ((((__const uint32_t *) (a))[0] & htonl (0xffc00000)) \
== htonl (0xfec00000)) == htonl (0xfec00000))
#define IN6_IS_ADDR_V4MAPPED(a) \ # define IN6_IS_ADDR_V4MAPPED(a) \
((((__const uint32_t *) (a))[0] == 0) \ ((((__const uint32_t *) (a))[0] == 0) \
&& (((__const uint32_t *) (a))[1] == 0) \ && (((__const uint32_t *) (a))[1] == 0) \
&& (((__const uint32_t *) (a))[2] == htonl (0xffff))) && (((__const uint32_t *) (a))[2] == htonl (0xffff)))
#define IN6_IS_ADDR_V4COMPAT(a) \ # define IN6_IS_ADDR_V4COMPAT(a) \
((((__const uint32_t *) (a))[0] == 0) \ ((((__const uint32_t *) (a))[0] == 0) \
&& (((__const uint32_t *) (a))[1] == 0) \ && (((__const uint32_t *) (a))[1] == 0) \
&& (((__const uint32_t *) (a))[2] == 0) \ && (((__const uint32_t *) (a))[2] == 0) \
&& (ntohl (((__const uint32_t *) (a))[3]) > 1)) && (ntohl (((__const uint32_t *) (a))[3]) > 1))
#define IN6_ARE_ADDR_EQUAL(a,b) \ # define IN6_ARE_ADDR_EQUAL(a,b) \
((((__const uint32_t *) (a))[0] == ((__const uint32_t *) (b))[0]) \ ((((__const uint32_t *) (a))[0] == ((__const uint32_t *) (b))[0]) \
&& (((__const uint32_t *) (a))[1] == ((__const uint32_t *) (b))[1]) \ && (((__const uint32_t *) (a))[1] == ((__const uint32_t *) (b))[1]) \
&& (((__const uint32_t *) (a))[2] == ((__const uint32_t *) (b))[2]) \ && (((__const uint32_t *) (a))[2] == ((__const uint32_t *) (b))[2]) \
&& (((__const uint32_t *) (a))[3] == ((__const uint32_t *) (b))[3])) && (((__const uint32_t *) (a))[3] == ((__const uint32_t *) (b))[3]))
#endif
#define IN6_IS_ADDR_MULTICAST(a) (((__const uint8_t *) (a))[0] == 0xff)
#if defined __USE_MISC || defined __USE_GNU #if defined __USE_MISC || defined __USE_GNU
/* Bind socket to a privileged IP port. */ /* Bind socket to a privileged IP port. */

173
inet/tst-checks.c Normal file
View File

@ -0,0 +1,173 @@
#include <stdio.h>
#include <string.h>
#include <netinet/in.h>
static int
do_test (void)
{
int result = 0;
char buf[16];
memset (buf, '\0', 16);
if (! IN6_IS_ADDR_UNSPECIFIED (buf))
{
puts ("positive IN6_IS_ADDR_UNSPECIFIED failed");
result = 1;
}
for (size_t i = 0; i < 16; ++i)
{
buf[i] = 1;
if (IN6_IS_ADDR_UNSPECIFIED (buf))
{
printf ("negative IN6_IS_ADDR_UNSPECIFIED with byte %zu failed\n",
i);
result = 1;
}
buf[i] = 0;
}
if (IN6_IS_ADDR_LOOPBACK (buf))
{
puts ("negative IN6_IS_ADDR_UNSPECIFIED failed");
result = 1;
}
buf[15] = 1;
if (! IN6_IS_ADDR_LOOPBACK (buf))
{
puts ("positive IN6_IS_ADDR_UNSPECIFIED failed");
result = 1;
}
buf[15] = 0;
buf[0] = 0xfe;
buf[1] = 0x80;
if (! IN6_IS_ADDR_LINKLOCAL (buf))
{
puts ("positive IN6_IS_ADDR_LINKLOCAL failed");
result = 1;
}
for (size_t i = 1; i < 16; ++i)
{
buf[i] ^= 1;
if (! IN6_IS_ADDR_LINKLOCAL (buf))
{
printf ("positive IN6_IS_ADDR_LINKLOCAL byte %zu failed\n", i);
result = 1;
}
buf[i] ^= 1;
}
buf[0] = 0xff;
buf[1] = 0x80;
if (IN6_IS_ADDR_LINKLOCAL (buf))
{
puts ("negative IN6_IS_ADDR_LINKLOCAL failed");
result = 1;
}
buf[0] = 0xfe;
buf[1] = 0xc0;
if (IN6_IS_ADDR_LINKLOCAL (buf))
{
puts ("negative IN6_IS_ADDR_LINKLOCAL #2 failed");
result = 1;
}
buf[0] = 0xfe;
buf[1] = 0xc0;
if (! IN6_IS_ADDR_SITELOCAL (buf))
{
puts ("positive IN6_IS_ADDR_SITELOCAL failed");
result = 1;
}
for (size_t i = 1; i < 16; ++i)
{
buf[i] ^= 1;
if (! IN6_IS_ADDR_SITELOCAL (buf))
{
printf ("positive IN6_IS_ADDR_SITELOCAL byte %zu failed\n", i);
result = 1;
}
buf[i] ^= 1;
}
buf[0] = 0xff;
buf[1] = 0x80;
if (IN6_IS_ADDR_SITELOCAL (buf))
{
puts ("negative IN6_IS_ADDR_SITELOCAL failed");
result = 1;
}
buf[0] = 0xf8;
buf[1] = 0xc0;
if (IN6_IS_ADDR_SITELOCAL (buf))
{
puts ("negative IN6_IS_ADDR_SITELOCAL #2 failed");
result = 1;
}
memset (buf, '\0', 16);
buf[10] = 0xff;
buf[11] = 0xff;
if (! IN6_IS_ADDR_V4MAPPED (buf))
{
puts ("positive IN6_IS_ADDR_V4MAPPED failed");
result = 1;
}
for (size_t i = 12; i < 16; ++i)
{
buf[i] ^= 1;
if (! IN6_IS_ADDR_V4MAPPED (buf))
{
printf ("positive IN6_IS_ADDR_V4MAPPED byte %zu failed\n", i);
result = 1;
}
buf[i] ^= 1;
}
for (size_t i = 0; i < 12; ++i)
{
buf[i] ^= 1;
if (IN6_IS_ADDR_V4MAPPED (buf))
{
printf ("negative IN6_IS_ADDR_V4MAPPED byte %zu failed\n", i);
result = 1;
}
buf[i] ^= 1;
}
memset (buf, '\0', 16);
for (size_t i = 12; i < 16; ++i)
{
buf[i] ^= 2;
if (! IN6_IS_ADDR_V4COMPAT (buf))
{
printf ("positive IN6_IS_ADDR_V4COMPAT byte %zu failed\n", i);
result = 1;
}
buf[i] ^= 2;
}
for (size_t i = 0; i < 12; ++i)
{
buf[i] ^= 1;
if (IN6_IS_ADDR_V4COMPAT (buf))
{
printf ("negative IN6_IS_ADDR_V4COMPAT byte %zu failed\n", i);
result = 1;
}
buf[i] ^= 1;
}
if (IN6_IS_ADDR_V4COMPAT (buf))
{
puts ("negative IN6_IS_ADDR_V4COMPAT #2 failed");
result = 1;
}
buf[15] = 1;
if (IN6_IS_ADDR_V4COMPAT (buf))
{
puts ("negative IN6_IS_ADDR_V4COMPAT #3 failed");
result = 1;
}
return result;
}
#define TEST_FUNCTION do_test ()
#include "../test-skeleton.c"

View File

@ -1,3 +1,7 @@
2011-12-03 Ulrich Drepper <drepper@gmail.com>
* idna.c (idna_to_unicode_4z4z): Remove variable rc.
2008-02-10 Jim Meyering <meyering@redhat.com> 2008-02-10 Jim Meyering <meyering@redhat.com>
* stringprep.c (stringprep, stringprep_profile): Remove useless * stringprep.c (stringprep, stringprep_profile): Remove useless

View File

@ -1,5 +1,5 @@
/* idna.c Convert to or from IDN strings. /* idna.c Convert to or from IDN strings.
* Copyright (C) 2002, 2003, 2004 Simon Josefsson * Copyright (C) 2002, 2003, 2004, 2011 Simon Josefsson
* *
* This file is part of GNU Libidn. * This file is part of GNU Libidn.
* *
@ -614,7 +614,6 @@ idna_to_unicode_4z4z (const uint32_t * input, uint32_t ** output, int flags)
size_t buflen; size_t buflen;
uint32_t *out = NULL; uint32_t *out = NULL;
size_t outlen = 0; size_t outlen = 0;
int rc;
*output = NULL; *output = NULL;
@ -630,8 +629,8 @@ idna_to_unicode_4z4z (const uint32_t * input, uint32_t ** output, int flags)
if (!buf) if (!buf)
return IDNA_MALLOC_ERROR; return IDNA_MALLOC_ERROR;
rc = idna_to_unicode_44i (start, end - start, buf, &buflen, flags); idna_to_unicode_44i (start, end - start, buf, &buflen, flags);
/* don't check rc as per specification! */ /* don't check return value as per specification! */
if (out) if (out)
{ {

View File

@ -1,5 +1,5 @@
/* Compute hash value for given string according to ELF standard. /* Compute hash value for given string according to ELF standard.
Copyright (C) 1995,1996,1997,1998,2003,2005 Free Software Foundation, Inc. Copyright (C) 1995-1998,2003,2005,2011 Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or The GNU C Library is free software; you can redistribute it and/or
@ -25,6 +25,7 @@
first five operations no overflow is possible so we optimized it a first five operations no overflow is possible so we optimized it a
bit. */ bit. */
static unsigned int static unsigned int
__attribute__ ((used))
_dl_elf_hash (const char *name_arg) _dl_elf_hash (const char *name_arg)
{ {
const unsigned char *name = (const unsigned char *) name_arg; const unsigned char *name = (const unsigned char *) name_arg;

View File

@ -1,2 +0,0 @@
/* Nothing to do. This function is the same as scalbn. So we define an
alias. */

View File

@ -1,9 +0,0 @@
#define scalbln __renamed_scalbln
#define __scalbln __renamed___scalbln
#include <sysdeps/ieee754/dbl-64/wordsize-64/s_scalbn.c>
#undef scalbln
#undef __scalbln
strong_alias (__scalbn, __scalbln)
weak_alias (__scalbn, scalbln)

View File

@ -1,5 +1,9 @@
#ifndef NOT_IN_libc #ifndef NOT_IN_libc
# include <wchar.h>
# define WMEMCMP __wmemcmp_sse2 # define WMEMCMP __wmemcmp_sse2
extern __typeof (wmemcmp) __wmemcmp_sse2;
#endif #endif
#include "wcsmbs/wmemcmp.c" #include "wcsmbs/wmemcmp.c"