[PATCH] __builtin_expect cleanup for iconvdata/*.c
Florian Weimer
fweimer@redhat.com
Mon Sep 8 23:14:00 GMT 2014
On 09/08/2014 11:04 PM, Kalle Olavi Niemitalo wrote:
> Florian Weimer <fweimer@redhat.com> writes:
>
>> --- a/iconvdata/iso-2022-cn.c
>> +++ b/iconvdata/iso-2022-cn.c
>> @@ -126,22 +126,22 @@ enum
>> STANDARD_FROM_LOOP_ERR_HANDLER (1); \
>> \
>> /* Recognize escape sequences. */ \
>> - if (__builtin_expect (ch, 0) == ESC) \
>> + if (__glibc_unlikely (ch) == ESC) \
>
> Shouldn't that be __glibc_unlikely (ch == ESC)?
> I guess it makes no difference in practice, but it looks wrong.
> There are other changes like that, for example:
>
> - if (__builtin_expect (found, 1) != __UNKNOWN_10646_CHAR) \
> + if (__glibc_likely (found) != __UNKNOWN_10646_CHAR) \
Right, these changes are technically correct (they are un-expanding the
macro definitions), but they are even uglier than the original code.
I'll work on a regenerated patch with additional heuristics to cover this.
--
Florian Weimer / Red Hat Product Security
More information about the Libc-alpha
mailing list