{ Source provided for Free Pascal Bug Report 1720 }
{ Submitted by "Jesse Towner" on  2001-12-09 }
{ e-mail: jesse@gdnmail.net }
var a, b, c : single;
begin
    (* ... other floating point code goes here *)

    a := 5.6;
    b := 3.4;
    b:= b + sqrt(b)- ln(a);

    c := a - (b-(b-1));

    if abs(c-(a-1))>0.01 then
      begin
        Writeln('Error in floating point code');
        halt(1);
      end;
    (* sometimes, depending on the previous code,
       the code generator will chose to swap the
       operands. however, it just calls the
       reverse version of the instruction without
       swapping the operands. this results in
       giving a value of (b-a) or -2.2 for c. the
       same goes for floating point division. *)
end.

