1
0
mirror of https://sourceware.org/git/glibc.git synced 2025-08-07 06:43:00 +03:00

Replace __builtin_expect(..., 0) with __glibc_unlikely().

This commit is contained in:
Paul Pluzhnikov
2013-03-05 21:38:19 -08:00
parent 2d67d91ac0
commit e1b42695ea
2 changed files with 24 additions and 19 deletions

View File

@@ -1,3 +1,8 @@
2013-03-06 Paul Pluzhnikov <ppluzhnikov@google.com>
* stdio-common/vfprintf.c: Replace __builtin_expect with
__glibc_unlikely.
2013-03-06 Joseph Myers <joseph@codesourcery.com> 2013-03-06 Joseph Myers <joseph@codesourcery.com>
[BZ #13550] [BZ #13550]

View File

@@ -67,7 +67,7 @@
do { \ do { \
unsigned int _val = val; \ unsigned int _val = val; \
assert ((unsigned int) done < (unsigned int) INT_MAX); \ assert ((unsigned int) done < (unsigned int) INT_MAX); \
if (__builtin_expect (INT_MAX - done < _val, 0)) \ if (__glibc_unlikely (INT_MAX - done < _val)) \
{ \ { \
done = -1; \ done = -1; \
__set_errno (EOVERFLOW); \ __set_errno (EOVERFLOW); \
@@ -91,7 +91,7 @@
if (width > 0) \ if (width > 0) \
{ \ { \
unsigned int d = _IO_padn (s, (Padchar), width); \ unsigned int d = _IO_padn (s, (Padchar), width); \
if (__builtin_expect (d == EOF, 0)) \ if (__glibc_unlikely (d == EOF)) \
{ \ { \
done = -1; \ done = -1; \
goto all_done; \ goto all_done; \
@@ -120,7 +120,7 @@
if (width > 0) \ if (width > 0) \
{ \ { \
unsigned int d = _IO_wpadn (s, (Padchar), width); \ unsigned int d = _IO_wpadn (s, (Padchar), width); \
if (__builtin_expect (d == EOF, 0)) \ if (__glibc_unlikely (d == EOF)) \
{ \ { \
done = -1; \ done = -1; \
goto all_done; \ goto all_done; \
@@ -166,7 +166,7 @@
done = -1; \ done = -1; \
goto all_done; \ goto all_done; \
} \ } \
if (__builtin_expect (INT_MAX - done < (Len), 0)) \ if (__glibc_unlikely (INT_MAX - done < (Len))) \
{ \ { \
done = -1; \ done = -1; \
__set_errno (EOVERFLOW); \ __set_errno (EOVERFLOW); \
@@ -1108,7 +1108,7 @@ vfprintf (FILE *s, const CHAR_T *format, va_list ap)
outstring (string, len); \ outstring (string, len); \
if (left) \ if (left) \
PAD (L' '); \ PAD (L' '); \
if (__builtin_expect (string_malloced, 0)) \ if (__glibc_unlikely (string_malloced)) \
free (string); \ free (string); \
} \ } \
break; break;
@@ -1254,7 +1254,7 @@ vfprintf (FILE *s, const CHAR_T *format, va_list ap)
outstring (string, len); \ outstring (string, len); \
if (left) \ if (left) \
PAD (' '); \ PAD (' '); \
if (__builtin_expect (string_malloced, 0)) \ if (__glibc_unlikely (string_malloced)) \
free (string); \ free (string); \
} \ } \
break; break;
@@ -1315,9 +1315,9 @@ vfprintf (FILE *s, const CHAR_T *format, va_list ap)
goto all_done; goto all_done;
/* Use the slow path in case any printf handler is registered. */ /* Use the slow path in case any printf handler is registered. */
if (__builtin_expect (__printf_function_table != NULL if (__glibc_unlikely (__printf_function_table != NULL
|| __printf_modifier_table != NULL || __printf_modifier_table != NULL
|| __printf_va_arg_table != NULL, 0)) || __printf_va_arg_table != NULL))
goto do_positional; goto do_positional;
/* Process whole format string. */ /* Process whole format string. */
@@ -1452,7 +1452,7 @@ vfprintf (FILE *s, const CHAR_T *format, va_list ap)
left = 1; left = 1;
} }
if (__builtin_expect (width >= INT_MAX / sizeof (CHAR_T) - 32, 0)) if (__glibc_unlikely (width >= INT_MAX / sizeof (CHAR_T) - 32))
{ {
__set_errno (EOVERFLOW); __set_errno (EOVERFLOW);
done = -1; done = -1;
@@ -1484,8 +1484,8 @@ vfprintf (FILE *s, const CHAR_T *format, va_list ap)
LABEL (width): LABEL (width):
width = read_int (&f); width = read_int (&f);
if (__builtin_expect (width == -1 if (__glibc_unlikely (width == -1
|| width >= INT_MAX / sizeof (CHAR_T) - 32, 0)) || width >= INT_MAX / sizeof (CHAR_T) - 32))
{ {
__set_errno (EOVERFLOW); __set_errno (EOVERFLOW);
done = -1; done = -1;
@@ -1561,7 +1561,7 @@ vfprintf (FILE *s, const CHAR_T *format, va_list ap)
if (prec > width if (prec > width
&& prec > sizeof (work_buffer) / sizeof (work_buffer[0]) - 32) && prec > sizeof (work_buffer) / sizeof (work_buffer[0]) - 32)
{ {
if (__builtin_expect (prec >= INT_MAX / sizeof (CHAR_T) - 32, 0)) if (__glibc_unlikely (prec >= INT_MAX / sizeof (CHAR_T) - 32))
{ {
__set_errno (EOVERFLOW); __set_errno (EOVERFLOW);
done = -1; done = -1;
@@ -1645,7 +1645,7 @@ vfprintf (FILE *s, const CHAR_T *format, va_list ap)
/* The format is correctly handled. */ /* The format is correctly handled. */
++nspecs_done; ++nspecs_done;
if (__builtin_expect (workstart != NULL, 0)) if (__glibc_unlikely (workstart != NULL))
free (workstart); free (workstart);
workstart = NULL; workstart = NULL;
@@ -1691,7 +1691,7 @@ do_positional:
/* Just a counter. */ /* Just a counter. */
size_t cnt; size_t cnt;
if (__builtin_expect (workstart != NULL, 0)) if (__glibc_unlikely (workstart != NULL))
free (workstart); free (workstart);
workstart = NULL; workstart = NULL;
@@ -1737,7 +1737,7 @@ do_positional:
+ sizeof (*args_type)); + sizeof (*args_type));
/* Check for potential integer overflow. */ /* Check for potential integer overflow. */
if (__builtin_expect (nargs > INT_MAX / bytes_per_arg, 0)) if (__glibc_unlikely (nargs > INT_MAX / bytes_per_arg))
{ {
__set_errno (EOVERFLOW); __set_errno (EOVERFLOW);
done = -1; done = -1;
@@ -1842,7 +1842,7 @@ do_positional:
default: default:
if ((args_type[cnt] & PA_FLAG_PTR) != 0) if ((args_type[cnt] & PA_FLAG_PTR) != 0)
args_value[cnt].pa_pointer = va_arg (ap_save, void *); args_value[cnt].pa_pointer = va_arg (ap_save, void *);
else if (__builtin_expect (__printf_va_arg_table != NULL, 0) else if (__glibc_unlikely (__printf_va_arg_table != NULL)
&& __printf_va_arg_table[args_type[cnt] - PA_LAST] != NULL) && __printf_va_arg_table[args_type[cnt] - PA_LAST] != NULL)
{ {
args_value[cnt].pa_user = alloca (args_size[cnt]); args_value[cnt].pa_user = alloca (args_size[cnt]);
@@ -2027,7 +2027,7 @@ do_positional:
break; break;
} }
if (__builtin_expect (workstart != NULL, 0)) if (__glibc_unlikely (workstart != NULL))
free (workstart); free (workstart);
workstart = NULL; workstart = NULL;
@@ -2039,9 +2039,9 @@ do_positional:
} }
all_done: all_done:
if (__builtin_expect (args_malloced != NULL, 0)) if (__glibc_unlikely (args_malloced != NULL))
free (args_malloced); free (args_malloced);
if (__builtin_expect (workstart != NULL, 0)) if (__glibc_unlikely (workstart != NULL))
free (workstart); free (workstart);
/* Unlock the stream. */ /* Unlock the stream. */
_IO_funlockfile (s); _IO_funlockfile (s);