{ %OPT=-O2 } { Source provided for Free Pascal Bug Report 1932 } { Submitted by "Rob Kolstad" on 2002-04-15 } { e-mail: kolstad@ace.delos.com } program breaksusingO2; var i, ans:longint; data:array[1..2,0..1] of longint; begin data[1,0] := 2; data[1,1] := 7; data[2,0] := 6; data[2,1] := 9; i:= 1; ans := 0; writeln ('calculated diff = ',data[i,1]-data[i+1,0]); if data[i,1]>data[i+1,0] then begin ans := data[i,1]-data[i+1,0]; // I think that data[i+1,0] is being evaluated to 0...RK end; // ans should be 1 writeln('ans should = 1, but ans=', ans); if ans <> 1 then halt(1); end.