Re: [PATCH] misplaced parenthesis?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Here's an updated patch:

Reported-by: Roel Kluin <roel.kluin@xxxxxxxxx>
Signed-off-by: Randolph Chung <tausq@xxxxxxxxxxxxxxxx>

diff --git a/arch/parisc/lib/memcpy.c b/arch/parisc/lib/memcpy.c
index 2d68431..827e535 100644
--- a/arch/parisc/lib/memcpy.c
+++ b/arch/parisc/lib/memcpy.c
@@ -405,7 +405,7 @@ byte_copy:

 unaligned_copy:
        /* possibly we are aligned on a word, but not on a double... */
-       if (likely(t1 & (sizeof(unsigned int)-1)) == 0) {
+       if (likely((t1 & (sizeof(unsigned int)-1)) == 0)) {
                t2 = src & (sizeof(unsigned int) - 1);

                if (unlikely(t2 != 0)) {


On Mon, May 18, 2009 at 9:42 AM, Randolph Chung<randolph@xxxxxxxxx> wrote:
> The wrong version of course produces different code....
>
> the original and the corrected one may produce different code depending on
> how the compiler schedules things.
>
> randolph
>
> Matt Turner wrote:
>>
>> Does gcc produce different code for the three variations?
>>
>> Matt
>>
>> On Sat, May 16, 2009 at 12:14 AM, Randolph Chung <randolph@xxxxxxxxx>
>> wrote:
>>
>>>
>>> This is a bit confusingly written, but your patch does not appear to be
>>> correct.
>>>
>>> == has higher precedence than &, so you are basically changing it to:
>>> if (likely(t1 & 1))
>>>
>>> it really should be
>>>
>>> -       if (likely(t1 & (sizeof(unsigned int)-1)) == 0) {
>>> +       if (likely((t1 & (sizeof(unsigned int)-1)) == 0)) {
>>>
>>> randolph
>>>
>>>
>>> Roel Kluin wrote:
>>>
>>>>
>>>> Fix misplaced parenthesis.
>>>>
>>>> Signed-off-by: Roel Kluin <roel.kluin@xxxxxxxxx>
>>>> ---
>>>> I think this is what was intended? Note that this patch may affect
>>>> profiling.
>>>>
>>>> diff --git a/arch/parisc/lib/memcpy.c b/arch/parisc/lib/memcpy.c
>>>> index bbda909..30207b0 100644
>>>> --- a/arch/parisc/lib/memcpy.c
>>>> +++ b/arch/parisc/lib/memcpy.c
>>>> @@ -405,7 +405,7 @@ byte_copy:
>>>>  unaligned_copy:
>>>>       /* possibly we are aligned on a word, but not on a double... */
>>>> -       if (likely(t1 & (sizeof(unsigned int)-1)) == 0) {
>>>> +       if (likely(t1 & (sizeof(unsigned int)-1) == 0)) {
>>>>               t2 = src & (sizeof(unsigned int) - 1);
>>>>                 if (unlikely(t2 != 0)) {
>>>> --
>>>> To unsubscribe from this list: send the line "unsubscribe linux-parisc"
>>>> in
>>>> the body of a message to majordomo@xxxxxxxxxxxxxxx
>>>> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>>>>
>>>>
>>>
>>> --
>>> To unsubscribe from this list: send the line "unsubscribe linux-parisc"
>>> in
>>> the body of a message to majordomo@xxxxxxxxxxxxxxx
>>> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>>>
>>>
>>
>> --
>> To unsubscribe from this list: send the line "unsubscribe linux-parisc" in
>> the body of a message to majordomo@xxxxxxxxxxxxxxx
>> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>>
>
>
--
To unsubscribe from this list: send the line "unsubscribe linux-parisc" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux SoC]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux