diff options
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | stdio-common/vfprintf.c | 38 |
2 files changed, 24 insertions, 19 deletions
diff --git a/ChangeLog b/ChangeLog index e7fa53a238..f1e8b4fe36 100644 --- a/ChangeLog +++ b/ChangeLog @@ -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> [BZ #13550] diff --git a/stdio-common/vfprintf.c b/stdio-common/vfprintf.c index 7042090268..c8bcf5a976 100644 --- a/stdio-common/vfprintf.c +++ b/stdio-common/vfprintf.c @@ -67,7 +67,7 @@ do { \ unsigned int _val = val; \ 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; \ __set_errno (EOVERFLOW); \ @@ -91,7 +91,7 @@ if (width > 0) \ { \ unsigned int d = _IO_padn (s, (Padchar), width); \ - if (__builtin_expect (d == EOF, 0)) \ + if (__glibc_unlikely (d == EOF)) \ { \ done = -1; \ goto all_done; \ @@ -120,7 +120,7 @@ if (width > 0) \ { \ unsigned int d = _IO_wpadn (s, (Padchar), width); \ - if (__builtin_expect (d == EOF, 0)) \ + if (__glibc_unlikely (d == EOF)) \ { \ done = -1; \ goto all_done; \ @@ -166,7 +166,7 @@ done = -1; \ goto all_done; \ } \ - if (__builtin_expect (INT_MAX - done < (Len), 0)) \ + if (__glibc_unlikely (INT_MAX - done < (Len))) \ { \ done = -1; \ __set_errno (EOVERFLOW); \ @@ -1108,7 +1108,7 @@ vfprintf (FILE *s, const CHAR_T *format, va_list ap) outstring (string, len); \ if (left) \ PAD (L' '); \ - if (__builtin_expect (string_malloced, 0)) \ + if (__glibc_unlikely (string_malloced)) \ free (string); \ } \ break; @@ -1254,7 +1254,7 @@ vfprintf (FILE *s, const CHAR_T *format, va_list ap) outstring (string, len); \ if (left) \ PAD (' '); \ - if (__builtin_expect (string_malloced, 0)) \ + if (__glibc_unlikely (string_malloced)) \ free (string); \ } \ break; @@ -1315,9 +1315,9 @@ vfprintf (FILE *s, const CHAR_T *format, va_list ap) goto all_done; /* 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_va_arg_table != NULL, 0)) + || __printf_va_arg_table != NULL)) goto do_positional; /* Process whole format string. */ @@ -1452,7 +1452,7 @@ vfprintf (FILE *s, const CHAR_T *format, va_list ap) 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); done = -1; @@ -1484,8 +1484,8 @@ vfprintf (FILE *s, const CHAR_T *format, va_list ap) LABEL (width): width = read_int (&f); - if (__builtin_expect (width == -1 - || width >= INT_MAX / sizeof (CHAR_T) - 32, 0)) + if (__glibc_unlikely (width == -1 + || width >= INT_MAX / sizeof (CHAR_T) - 32)) { __set_errno (EOVERFLOW); done = -1; @@ -1561,7 +1561,7 @@ vfprintf (FILE *s, const CHAR_T *format, va_list ap) if (prec > width && 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); done = -1; @@ -1645,7 +1645,7 @@ vfprintf (FILE *s, const CHAR_T *format, va_list ap) /* The format is correctly handled. */ ++nspecs_done; - if (__builtin_expect (workstart != NULL, 0)) + if (__glibc_unlikely (workstart != NULL)) free (workstart); workstart = NULL; @@ -1691,7 +1691,7 @@ do_positional: /* Just a counter. */ size_t cnt; - if (__builtin_expect (workstart != NULL, 0)) + if (__glibc_unlikely (workstart != NULL)) free (workstart); workstart = NULL; @@ -1737,7 +1737,7 @@ do_positional: + sizeof (*args_type)); /* 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); done = -1; @@ -1842,7 +1842,7 @@ do_positional: default: if ((args_type[cnt] & PA_FLAG_PTR) != 0) 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) { args_value[cnt].pa_user = alloca (args_size[cnt]); @@ -2027,7 +2027,7 @@ do_positional: break; } - if (__builtin_expect (workstart != NULL, 0)) + if (__glibc_unlikely (workstart != NULL)) free (workstart); workstart = NULL; @@ -2039,9 +2039,9 @@ do_positional: } all_done: - if (__builtin_expect (args_malloced != NULL, 0)) + if (__glibc_unlikely (args_malloced != NULL)) free (args_malloced); - if (__builtin_expect (workstart != NULL, 0)) + if (__glibc_unlikely (workstart != NULL)) free (workstart); /* Unlock the stream. */ _IO_funlockfile (s); |