Delphi 7 follows ISO rule.

The loop:
for i := 1 to 100 do begin
   if IntArray[i] > 100 then  begin
    n := i;
    break;
   end;
end;
writeln('The '+IntToStr(i)+' item in the array > 100');
Doesn't produce a warning.

The loop:
 n:=-1;
 for i := 1 to 100 do begin
    if (IntArray[i] > 100) and (n<0) then
      n := i;
  end;
  writeln('The '+IntToStr(i)+' item in the array > 100');

Does: [Warning] FOR-Loop variable 'i' may be undefined after loop

thanks,
Dmitry

On Mon, Oct 5, 2015 at 11:21 AM, Sven Barth <pascaldra...@googlemail.com>
wrote:

> Am 05.10.2015 15:43 schrieb "Adriaan van Os" <f...@microbizz.nl>:
> >
> > Sven Barth wrote:
> >
> >> The for-loop-variable contains a valid value after the loop if the loop
> was left using a break or goto (this does not seem to be documented in
> FPC's language reference guide, but AFAIK it is in Delphi; also don't know
> what the ISO standard says about this...).
> >
> >
> > ISO/IEC 7185 :1990(E) says in section 6.8 .3.9 For-statements
> >
> > After a for-statement is executed, other than being left by a
> goto-statement, the control-variable shall be undefined .
>
> Thanks, so this applies to ISO as well ^^
>
> Regards,
> Sven
>
> _______________________________________________
> fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
> http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal
>
_______________________________________________
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal

Reply via email to