[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Commits] r16309 - in /fsf/trunk/libc: ./ iconv/ iconvdata/ stdlib/ sysdeps/x86_64/fpu/bits/ time/
- To: commits@xxxxxxxxxx
- Subject: [Commits] r16309 - in /fsf/trunk/libc: ./ iconv/ iconvdata/ stdlib/ sysdeps/x86_64/fpu/bits/ time/
- From: eglibc@xxxxxxxxxx
- Date: Thu, 22 Dec 2011 00:02:23 -0000
Author: eglibc
Date: Thu Dec 22 00:02:21 2011
New Revision: 16309
Log:
Import glibc-mainline for 2011-12-22
Modified:
fsf/trunk/libc/ChangeLog
fsf/trunk/libc/NEWS
fsf/trunk/libc/iconv/gconv.h
fsf/trunk/libc/iconvdata/unicode.c
fsf/trunk/libc/iconvdata/utf-16.c
fsf/trunk/libc/iconvdata/utf-32.c
fsf/trunk/libc/stdlib/strtod_l.c
fsf/trunk/libc/sysdeps/x86_64/fpu/bits/fenv.h
fsf/trunk/libc/time/tzfile.c
Modified: fsf/trunk/libc/ChangeLog
==============================================================================
--- fsf/trunk/libc/ChangeLog (original)
+++ fsf/trunk/libc/ChangeLog Thu Dec 22 00:02:21 2011
@@ -1,3 +1,22 @@
+2011-12-21 Ulrich Drepper <drepper@xxxxxxxxx>
+
+ [BZ #13439]
+ * iconv/gconv.h: Define __GCONV_SWAP.
+ * iconvdata/unicode.c: The swap bit must be stored in __flags.
+ * iconvdata/utf-16.c: Likewise.
+ * iconvdata/utf-32.c: Likewise.
+
+2011-12-21 Andreas Schwab <schwab@xxxxxxxxxxxxxx>
+
+ [BZ #13524]
+ * stdlib/strtod_l.c (____STRTOF_INTERNAL): Clear lowest limb of
+ numerator after shifting it by one limb.
+
+2011-12-19 Rafael ÃÂvila de EspÃÂndola <rafael.espindola@xxxxxxxxx>
+
+ * sysdeps/x86_64/fpu/bits/fenv.h (feraiseexcept): Define it only
+ under [__USE_EXTERN_INLINES].
+
2011-12-17 Ulrich Drepper <drepper@xxxxxxxxx>
[BZ #13446]
Modified: fsf/trunk/libc/NEWS
==============================================================================
--- fsf/trunk/libc/NEWS (original)
+++ fsf/trunk/libc/NEWS Thu Dec 22 00:02:21 2011
@@ -1,4 +1,4 @@
-GNU C Library NEWS -- history of user-visible changes. 2011-12-17
+GNU C Library NEWS -- history of user-visible changes. 2011-12-21
Copyright (C) 1992-2009, 2010, 2011 Free Software Foundation, Inc.
See the end for copying conditions.
@@ -12,8 +12,8 @@
6779, 6783, 9696, 10103, 10709, 11589, 12403, 12847, 12868, 12852, 12874,
12885, 12892, 12907, 12922, 12935, 13007, 13021, 13067, 13068, 13090,
13092, 13114, 13118, 13123, 13134, 13138, 13147, 13150, 13179, 13192,
- 13268, 13276, 13291, 13335, 13337, 13344, 13358, 13367, 13446, 13472,
- 13484, 13506
+ 13268, 13276, 13291, 13335, 13337, 13344, 13358, 13367, 13439, 13446,
+ 13472, 13484, 13506, 13524
* New program pldd to list loaded object of a process
Implemented by Ulrich Drepper.
Modified: fsf/trunk/libc/iconv/gconv.h
==============================================================================
--- fsf/trunk/libc/iconv/gconv.h (original)
+++ fsf/trunk/libc/iconv/gconv.h Thu Dec 22 00:02:21 2011
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997-1999, 2000-2002, 2007 Free Software Foundation, Inc.
+/* Copyright (C) 1997-1999, 2000-2002, 2007, 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
@@ -56,7 +56,8 @@
enum
{
__GCONV_IS_LAST = 0x0001,
- __GCONV_IGNORE_ERRORS = 0x0002
+ __GCONV_IGNORE_ERRORS = 0x0002,
+ __GCONV_SWAP = 0x0004
};
Modified: fsf/trunk/libc/iconvdata/unicode.c
==============================================================================
--- fsf/trunk/libc/iconvdata/unicode.c (original)
+++ fsf/trunk/libc/iconvdata/unicode.c Thu Dec 22 00:02:21 2011
@@ -1,5 +1,5 @@
/* Conversion module for Unicode
- Copyright (C) 1999, 2000-2002 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2000-2002, 2011 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@xxxxxxxxxx>, 1999.
@@ -57,7 +57,7 @@
*inptrp = inptr += 2; \
else if (get16u (inptr) == BOM_OE) \
{ \
- ((struct unicode_data *) step->__data)->swap = 1; \
+ data->__flags |= __GCONV_SWAP; \
*inptrp = inptr += 2; \
} \
} \
@@ -71,7 +71,7 @@
put16u (outbuf, BOM); \
outbuf += 2; \
} \
- swap = ((struct unicode_data *) step->__data)->swap;
+ swap = data->__flags & __GCONV_SWAP;
#define EXTRA_LOOP_ARGS , swap
@@ -86,7 +86,6 @@
struct unicode_data
{
enum direction dir;
- int swap;
};
@@ -110,7 +109,6 @@
if (new_data != NULL)
{
new_data->dir = dir;
- new_data->swap = 0;
step->__data = new_data;
if (dir == from_unicode)
Modified: fsf/trunk/libc/iconvdata/utf-16.c
==============================================================================
--- fsf/trunk/libc/iconvdata/utf-16.c (original)
+++ fsf/trunk/libc/iconvdata/utf-16.c Thu Dec 22 00:02:21 2011
@@ -1,5 +1,5 @@
/* Conversion module for UTF-16.
- Copyright (C) 1999, 2000-2002, 2003, 2005 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2000-2002, 2003, 2005, 2011 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@xxxxxxxxxx>, 1999.
@@ -44,35 +44,42 @@
#define PREPARE_LOOP \
enum direction dir = ((struct utf16_data *) step->__data)->dir; \
enum variant var = ((struct utf16_data *) step->__data)->var; \
- if (__builtin_expect (data->__invocation_counter == 0, 0) && var == UTF_16) \
+ if (__builtin_expect (data->__invocation_counter == 0, 0)) \
{ \
- if (FROM_DIRECTION) \
+ if (var == UTF_16) \
{ \
- /* We have to find out which byte order the file is encoded in. */ \
- if (inptr + 2 > inend) \
- return (inptr == inend \
- ? __GCONV_EMPTY_INPUT : __GCONV_INCOMPLETE_INPUT); \
- \
- if (get16u (inptr) == BOM) \
- /* Simply ignore the BOM character. */ \
- *inptrp = inptr += 2; \
- else if (get16u (inptr) == BOM_OE) \
+ if (FROM_DIRECTION) \
{ \
- ((struct utf16_data *) step->__data)->swap = 1; \
- *inptrp = inptr += 2; \
+ /* We have to find out which byte order the file is \
+ encoded in. */ \
+ if (inptr + 2 > inend) \
+ return (inptr == inend \
+ ? __GCONV_EMPTY_INPUT : __GCONV_INCOMPLETE_INPUT); \
+ \
+ if (get16u (inptr) == BOM) \
+ /* Simply ignore the BOM character. */ \
+ *inptrp = inptr += 2; \
+ else if (get16u (inptr) == BOM_OE) \
+ { \
+ data->__flags |= __GCONV_SWAP; \
+ *inptrp = inptr += 2; \
+ } \
+ } \
+ else if (!FROM_DIRECTION && !data->__internal_use) \
+ { \
+ /* Emit the Byte Order Mark. */ \
+ if (__builtin_expect (outbuf + 2 > outend, 0)) \
+ return __GCONV_FULL_OUTPUT; \
+ \
+ put16u (outbuf, BOM); \
+ outbuf += 2; \
} \
} \
- else if (!FROM_DIRECTION && !data->__internal_use) \
- { \
- /* Emit the Byte Order Mark. */ \
- if (__builtin_expect (outbuf + 2 > outend, 0)) \
- return __GCONV_FULL_OUTPUT; \
- \
- put16u (outbuf, BOM); \
- outbuf += 2; \
- } \
+ else if ((var == UTF_16LE && BYTE_ORDER == BIG_ENDIAN) \
+ || (var == UTF_16BE && BYTE_ORDER == LITTLE_ENDIAN)) \
+ data->__flags |= __GCONV_SWAP; \
} \
- int swap = ((struct utf16_data *) step->__data)->swap;
+ const int swap = data->__flags & __GCONV_SWAP;
#define EXTRA_LOOP_ARGS , swap
@@ -96,7 +103,6 @@
{
enum direction dir;
enum variant var;
- int swap;
};
@@ -151,9 +157,6 @@
{
new_data->dir = dir;
new_data->var = var;
- new_data->swap = ((var == UTF_16LE && BYTE_ORDER == BIG_ENDIAN)
- || (var == UTF_16BE
- && BYTE_ORDER == LITTLE_ENDIAN));
step->__data = new_data;
if (dir == from_utf16)
Modified: fsf/trunk/libc/iconvdata/utf-32.c
==============================================================================
--- fsf/trunk/libc/iconvdata/utf-32.c (original)
+++ fsf/trunk/libc/iconvdata/utf-32.c Thu Dec 22 00:02:21 2011
@@ -1,5 +1,5 @@
/* Conversion module for UTF-32.
- Copyright (C) 1999, 2000-2002 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2000-2002, 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
@@ -45,7 +45,7 @@
int swap; \
if (FROM_DIRECTION && var == UTF_32) \
{ \
- if (data->__invocation_counter == 0) \
+ if (__builtin_expect (data->__invocation_counter == 0, 0)) \
{ \
/* We have to find out which byte order the file is encoded in. */ \
if (inptr + 4 > inend) \
@@ -57,7 +57,7 @@
*inptrp = inptr += 4; \
else if (get32u (inptr) == BOM_OE) \
{ \
- ((struct utf32_data *) step->__data)->swap = 1; \
+ data->__flags |= __GCONV_SWAP; \
*inptrp = inptr += 4; \
} \
} \
@@ -72,7 +72,11 @@
put32u (outbuf, BOM); \
outbuf += 4; \
} \
- swap = ((struct utf32_data *) step->__data)->swap;
+ else if (__builtin_expect (data->__invocation_counter == 0, 0) \
+ && ((var == UTF_32LE && BYTE_ORDER == BIG_ENDIAN) \
+ || (var == UTF_32BE && BYTE_ORDER == LITTLE_ENDIAN))) \
+ data->__flags |= __GCONV_SWAP; \
+ swap = data->__flags & __GCONV_SWAP;
#define EXTRA_LOOP_ARGS , var, swap
@@ -96,7 +100,6 @@
{
enum direction dir;
enum variant var;
- int swap;
};
@@ -151,9 +154,6 @@
{
new_data->dir = dir;
new_data->var = var;
- new_data->swap = ((var == UTF_32LE && BYTE_ORDER == BIG_ENDIAN)
- || (var == UTF_32BE
- && BYTE_ORDER == LITTLE_ENDIAN));
step->__data = new_data;
if (dir == from_utf32)
@@ -216,9 +216,8 @@
} \
\
if (swap) \
- put32 (outptr, bswap_32 (c)); \
- else \
- put32 (outptr, c); \
+ c = bswap_32 (c); \
+ put32 (outptr, c); \
\
outptr += 4; \
inptr += 4; \
Modified: fsf/trunk/libc/stdlib/strtod_l.c
==============================================================================
--- fsf/trunk/libc/stdlib/strtod_l.c (original)
+++ fsf/trunk/libc/stdlib/strtod_l.c Thu Dec 22 00:02:21 2011
@@ -1513,6 +1513,7 @@
assert (numsize == densize);
for (i = numsize; i > 0; --i)
num[i] = num[i - 1];
+ num[0] = 0;
}
den[densize] = 0;
@@ -1557,6 +1558,7 @@
n0 = num[densize] = num[densize - 1];
for (i = densize - 1; i > 0; --i)
num[i] = num[i - 1];
+ num[0] = 0;
got_limb;
}
Modified: fsf/trunk/libc/sysdeps/x86_64/fpu/bits/fenv.h
==============================================================================
--- fsf/trunk/libc/sysdeps/x86_64/fpu/bits/fenv.h (original)
+++ fsf/trunk/libc/sysdeps/x86_64/fpu/bits/fenv.h Thu Dec 22 00:02:21 2011
@@ -97,7 +97,7 @@
#endif
-#ifdef __OPTIMIZE__
+#ifdef __USE_EXTERN_INLINES
__BEGIN_DECLS
/* Optimized versions. */
Modified: fsf/trunk/libc/time/tzfile.c
==============================================================================
--- fsf/trunk/libc/time/tzfile.c (original)
+++ fsf/trunk/libc/time/tzfile.c Thu Dec 22 00:02:21 2011
@@ -278,7 +278,7 @@
if (__builtin_expect (tzspec_len < num_isstd, 0))
goto lose;
tzspec_len -= num_isstd;
- if (__builtin_expect (tzspec == 0 || tzspec_len - 1 < num_isgmt, 0))
+ if (__builtin_expect (tzspec_len == 0 || tzspec_len - 1 < num_isgmt, 0))
goto lose;
tzspec_len -= num_isgmt + 1;
if (__builtin_expect (SIZE_MAX - total_size < tzspec_len, 0))
_______________________________________________
Commits mailing list
Commits@xxxxxxxxxx
http://eglibc.org/cgi-bin/mailman/listinfo/commits