mirror of
https://sourceware.org/git/glibc.git
synced 2024-11-23 09:43:32 +08:00
Fix more warnings
This commit is contained in:
parent
8a426e1289
commit
aff2453df7
16
ChangeLog
16
ChangeLog
@ -1,5 +1,21 @@
|
||||
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.
|
||||
|
||||
2011-12-02 Ulrich Drepper <drepper@gmail.com>
|
||||
|
@ -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.
|
||||
|
||||
# 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 \
|
||||
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
|
||||
|
||||
@ -97,5 +97,5 @@ endif
|
||||
|
||||
ifeq (yes,$(build-static-nss))
|
||||
otherlibs += $(nssobjdir)/libnss_files.a $(resolvobjdir)/libnss_dns.a \
|
||||
$(resolvobjdir)/libresolv.a
|
||||
$(resolvobjdir)/libresolv.a
|
||||
endif
|
||||
|
@ -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.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
@ -396,44 +396,96 @@ extern uint16_t htons (uint16_t __hostshort)
|
||||
# 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))[1] == 0 \
|
||||
&& ((__const uint32_t *) (a))[2] == 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))[1] == 0 \
|
||||
&& ((__const uint32_t *) (a))[2] == 0 \
|
||||
&& ((__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)) \
|
||||
== htonl (0xfe800000))
|
||||
|
||||
#define IN6_IS_ADDR_SITELOCAL(a) \
|
||||
# define IN6_IS_ADDR_SITELOCAL(a) \
|
||||
((((__const uint32_t *) (a))[0] & htonl (0xffc00000)) \
|
||||
== htonl (0xfec00000))
|
||||
|
||||
#define IN6_IS_ADDR_V4MAPPED(a) \
|
||||
# define IN6_IS_ADDR_V4MAPPED(a) \
|
||||
((((__const uint32_t *) (a))[0] == 0) \
|
||||
&& (((__const uint32_t *) (a))[1] == 0) \
|
||||
&& (((__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))[1] == 0) \
|
||||
&& (((__const uint32_t *) (a))[2] == 0) \
|
||||
&& (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))[1] == ((__const uint32_t *) (b))[1]) \
|
||||
&& (((__const uint32_t *) (a))[2] == ((__const uint32_t *) (b))[2]) \
|
||||
&& (((__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
|
||||
/* Bind socket to a privileged IP port. */
|
||||
|
173
inet/tst-checks.c
Normal file
173
inet/tst-checks.c
Normal 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"
|
@ -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>
|
||||
|
||||
* stringprep.c (stringprep, stringprep_profile): Remove useless
|
||||
|
@ -1,5 +1,5 @@
|
||||
/* 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.
|
||||
*
|
||||
@ -614,7 +614,6 @@ idna_to_unicode_4z4z (const uint32_t * input, uint32_t ** output, int flags)
|
||||
size_t buflen;
|
||||
uint32_t *out = NULL;
|
||||
size_t outlen = 0;
|
||||
int rc;
|
||||
|
||||
*output = NULL;
|
||||
|
||||
@ -630,8 +629,8 @@ idna_to_unicode_4z4z (const uint32_t * input, uint32_t ** output, int flags)
|
||||
if (!buf)
|
||||
return IDNA_MALLOC_ERROR;
|
||||
|
||||
rc = idna_to_unicode_44i (start, end - start, buf, &buflen, flags);
|
||||
/* don't check rc as per specification! */
|
||||
idna_to_unicode_44i (start, end - start, buf, &buflen, flags);
|
||||
/* don't check return value as per specification! */
|
||||
|
||||
if (out)
|
||||
{
|
||||
|
@ -1,5 +1,5 @@
|
||||
/* 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.
|
||||
|
||||
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
|
||||
bit. */
|
||||
static unsigned int
|
||||
__attribute__ ((used))
|
||||
_dl_elf_hash (const char *name_arg)
|
||||
{
|
||||
const unsigned char *name = (const unsigned char *) name_arg;
|
||||
|
@ -1,2 +0,0 @@
|
||||
/* Nothing to do. This function is the same as scalbn. So we define an
|
||||
alias. */
|
@ -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)
|
@ -1,5 +1,9 @@
|
||||
#ifndef NOT_IN_libc
|
||||
# include <wchar.h>
|
||||
|
||||
# define WMEMCMP __wmemcmp_sse2
|
||||
|
||||
extern __typeof (wmemcmp) __wmemcmp_sse2;
|
||||
#endif
|
||||
|
||||
#include "wcsmbs/wmemcmp.c"
|
||||
|
Loading…
Reference in New Issue
Block a user