12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- program tw29372;
- {$MODE DELPHI}
- type
- TR1 = record
- A, B, C: Int64;
- constructor Create(_A, _B, _C: Int64);
- end;
- TR2 = record
- D, E, F: Int64;
- constructor Create(_D, _E, _F: Int64);
- end;
- constructor TR1.Create(_A, _B, _C: Int64);
- begin
- A := _A;
- B := _B;
- C := _C;
- end;
- constructor TR2.Create(_D, _E, _F: Int64);
- begin
- D := _D;
- E := _E;
- F := _F;
- end;
- { Note: unlike in the file attached at #29372 we use "const" both times to
- trigger the error on x86_64 as well }
- procedure Foo(const _1: TR1; const _2: TR2);
- begin
- if _1.A <> 1 then
- Halt(1);
- if _1.B <> 2 then
- Halt(2);
- if _1.C <> 3 then
- Halt(3);
- if _2.D <> 4 then
- Halt(2);
- if _2.E <> 5 then
- Halt(5);
- if _2.F <> 6 then
- Halt(6);
- end;
- begin
- Foo(TR1.Create(1, 2, 3), TR2.Create(4,5,6));
- end.
|