1234567891011121314151617181920212223242526272829303132333435363738394041 |
- { Source provided for Free Pascal Bug Report 976 }
- { Submitted by }
- { e-mail: }
- Program Test_Me;
- type PDouble = ^Double;
- var A, B: PDouble;
- x: Double;
- Operator + (x: Double; A: PDouble) B: Double;
- begin
- B := x + A^;
- end;
- { This was wrong because B value is not initialized !!
- Operator + (x: Single; A: PDouble) B: PDouble;
- begin
- B^ := x + A^;
- end; }
- begin
- new (A);
- new (B);
- x := 0.5;
- A^ := x;
- {--- Addition "Double + Double": OK}
- B^ := x + A^;
- writeln (B^:4:2);
- if B^<>1.0 then
- Halt(1);
- {---Identical error messages for addition "PDouble + Double" and "Double + PDouble"}
- {---in spite of overloaded + operator}
- // B := A + x;
- B^ := x + A;
- writeln (B^:4:2);
- if B^<>1.0 then
- Halt(1);
- end.
|