[Gambas-devel] gb3: recent revision regarding FOR...NEXT loops and counter variables

Kevin Fishburne kevinfishburne at ...590...
Thu Sep 1 23:00:15 CEST 2011


On 09/01/2011 07:35 AM, Benoît Minisini wrote:
>> Holy shit something is seriously wrong with a recent commit. All my
>> loops are going infinitely by wrapping around to negative values. Guess
>> no one's using the most recent build or they'd have noticed. Try
>> something like this in a module with no other code:
>>
>> ' Gambas module file
>>
>> Public Sub Main()
>>
>>     Dim Counter As Short
>>
>>     For Counter = 0 To 32767
>>       Print Counter
>>     Next
>>
>> End
> There was a bug fix in loop management.
>
> And your loop must loop indefinitely, because a short value wraps to -32768
> after 32767, so the limit is never passed.
>
> The solution is not using a Short as loop variable.

I understand what it's doing now. The "final" Next overflows the 
counter, making the loop infinite. While that makes sense, something 
doesn't quite smell right. I presume this behavior goes for any integer 
type, such as Byte, Integer, Long, etc.?

-- 
Kevin Fishburne
Eight Virtues
www: http://sales.eightvirtues.com
e-mail: sales at ...590...
phone: (770) 853-6271





More information about the Devel mailing list