This commit is contained in:
michael 1998-08-06 17:07:49 +00:00
parent 936aefc511
commit 61d9e05f90
2 changed files with 33 additions and 0 deletions

31
bugs/bug0152.pp Normal file
View File

@ -0,0 +1,31 @@
Program bug0152;
{
Shows wrong evaluation of loop boundaries. First end boundary must
be calculated, only then Loop variable should be initialized.
Change loop variable to J to see what should be the correct output.
}
PROCEDURE LGrow(VAR S : String;C:CHAR;Count:WORD);
VAR I,J :WORD;
BEGIN
I:=ORD(S[0]); { Keeping length in local data eases optimalisations}
IF I<Count THEN
BEGIN
Move(S[1],S[Count-I+1],I);
FOR I:=1 TO Count-I DO
S[I]:=C;
S[0]:=CHR(Count);
END;
END;
Var S : string;
begin
s:='abcedfghij';
writeln ('s : ',s);
lgrow (s,'1',17);
writeln ('S : ',s);
end.

View File

@ -201,3 +201,5 @@ bug0148.pp crash when setting function result of a declared but not yet
bug0149.pp (a, b) compile bug0149b twice and you'll get a crash
bug0150.pp Shows that the assert() macro is missing under Delphi.
bug0151.pp crash when using undeclared variable in with-statement
bug0152.pp End value of loop variable must be calculated before loop
variable is initialized.