Bug 150458 - Incorrect calculation of the boundaries of the For loop (Option VbaSupport 1)
Summary: Incorrect calculation of the boundaries of the For loop (Option VbaSupport 1)
Status: NEW
Alias: None
Product: LibreOffice
Classification: Unclassified
Component: BASIC (show other bugs)
Version:
(earliest affected)
7.3.5.2 release
Hardware: All All
: medium normal
Assignee: Not Assigned
URL:
Whiteboard:
Keywords:
Depends on:
Blocks: Macro-VBA
  Show dependency treegraph
 
Reported: 2022-08-17 13:14 UTC by Vladimir Sokolinskiy
Modified: 2022-08-17 15:14 UTC (History)
3 users (show)

See Also:
Crash report or crash signature:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Vladimir Sokolinskiy 2022-08-17 13:14:23 UTC
Run macro:

Option Explicit
Sub test
  Dim i As Long, j As Long, k As Long
  k=10
  For i=1 To k
    k=1
    j=i
  Next i
  
  Msgbox j
End Sub    

Shown: 1
Must be: 10

`For loop` bounds must be evaluated once at the beginning.
Comment 1 Mike Kaganski 2022-08-17 13:21:45 UTC
It should definitely be that way for VBA [1]. But why expect the same from non-compatibility mode? 

[1] https://stackoverflow.com/questions/27824936/for-start-to-end-loop-with-end-variable-changing-mid-loop
Comment 2 Vladimir Sokolinskiy 2022-08-17 13:51:00 UTC
I was born with this knowledge. :)

OK, let's limit to a bug in case
Comment 3 Vladimir Sokolinskiy 2022-08-17 13:52:07 UTC
Option VbaSupport  1
Comment 4 Mike Kaganski 2022-08-17 14:03:36 UTC
Repro using Version: 7.4.0.3 (x64) / LibreOffice Community
Build ID: f85e47c08ddd19c015c0114a68350214f7066f5a
CPU threads: 12; OS: Windows 10.0 Build 19044; UI render: Skia/Raster; VCL: win
Locale: ru-RU (ru_RU); UI: en-US
Calc: CL Jumbo

(with Option VBASupport 1, as mentioned in comment 3)

http://msdn.microsoft.com/en-us/library/ee157012.aspx