warning removal changes

Jerry Needell jerry.needell at unh.edu
Mon Sep 11 17:49:00 UTC 2006


Joel Sherrill wrote:

> Jerry Needell wrote:
>
>> Joel - changing the unint32_t's to int32_t did the trick - the diff 
>> is attached.
>
>
> Committed.  I was in a mindset where anything that looked like a length
> needed to be unsigned.  I suspect that it only is sum that has to be 
> signed
> but am willing to stop here since it works. :)

Actually, I had made them both int32_t and it worked so I tried changing 
mlen back to unt32_t and it broke. I did not try it with just sum as 
unit32_t.  The compiler was generating some very strange code for the 
failing case (not surprisingly).  If I get inspired, I'll poke at it 
more. Right now I've got bigger bugs to fry :-)
- Jerry

>
> Thanks.
>
> -joel
>
>> - Jerry
>> Joel Sherrill wrote:
>>
>>> Jerry Needell wrote:
>>>
>>>> Joel - Just a heads-up while I keep debugging. Your "clean-up" 
>>>> broke something in cpukit/libnetworking/netinet/in_cksum.c for the 
>>>> sparc leon3 bsp.
>>>> When I tried to use the etherenet driver, it would hang in an 
>>>> infinite loop in in_cksum.c. I mad a few quick changes to "undo" 
>>>> your recent modifications and everything works fine. I'm trying to 
>>>> understand why but I thought I'd let you know. Maybe the culprit 
>>>> will leap out at you.
>>>
>>>
>>> There were two CVS commits.  From 1.11 -> 1.12, the change was from 
>>> an int cast to
>>> (intptr_t) around line 120.  I doubt that broke it.
>>>
>>> From 1.10-> 1.11, I see that I changed two things.  I added "L" onto 
>>> the 65535's
>>> in ADDCARRY.  I doubt that broke anything.  But later in the file, I 
>>> changed some ints
>>> to uint32_t's.  Can you try changing those back to int32_t?
>>>
>>> cvs diff -r 1.10 -r 1.11 -u in_cksum.c
>>>
>>> to see the change.  It almost has to be adding the unsigned.
>>>
>>> Let me know what works and post the diff.  There wasn't much changed.
>>>
>>> --joel
>>>
>>>>
>>>> - Jerry
>>>> Joel Sherrill wrote:
>>>>
>>>>> Hi,
>>>>>
>>>>> I have made numerous hopefully safe changes to eliminate
>>>>> warnings over the past few days. My goal was to significantly
>>>>> reduce the number of warnings on 16-bit targets but since
>>>>> all the code in question was target independent, it impacted
>>>>> other targets.  I eliminated over 1000 warnings for h8300/multilib
>>>>> and about 1/2 for sparc/erc32.
>>>>> Please update your tree and test.  If you see problems or
>>>>> have fixes for other warnings, please help.
>>>>>
>>>>> We are primarily dealing with 16/32 bit integer issues and
>>>>> pointer mangling that gcc doesn't like.  I would like to
>>>>> be warning free. :)
>>>>>
>>>>> Thanks.
>>>>>
>>>>> --joel
>>>>
>>>>
>>>>
>>>>
>>
>> ------------------------------------------------------------------------
>>
>> Index: in_cksum.c
>> ===================================================================
>> RCS file: /usr1/CVS/rtems/cpukit/libnetworking/netinet/in_cksum.c,v
>> retrieving revision 1.12
>> diff -u -r1.12 in_cksum.c
>> --- in_cksum.c    1 Sep 2006 19:10:00 -0000    1.12
>> +++ in_cksum.c    11 Sep 2006 17:18:40 -0000
>> @@ -78,8 +78,8 @@
>>      register uint32_t len;
>>  {
>>      register u_short *w;
>> -    register uint32_t sum = 0;
>> -    register uint32_t mlen = 0;
>> +    register int32_t sum = 0;
>> +    register int32_t mlen = 0;
>>      int byte_swapped = 0;
>>  
>>      union {
>>   
>




More information about the users mailing list