|
@@ -0,0 +1,29 @@
|
|
|
+{ %TARGET=linux,android }
|
|
|
+{ %OPT=-Cg }
|
|
|
+{ This test uncovered code generation bug on MIPS when addressing a large global record
|
|
|
+ in position-independent way, but of course it cannot hurt to test other CPUs. }
|
|
|
+unit Test;
|
|
|
+
|
|
|
+interface
|
|
|
+
|
|
|
+type
|
|
|
+ TMyInnerRecord = packed record
|
|
|
+ end;
|
|
|
+ PMyInnerRecord = ^TMyInnerRecord;
|
|
|
+ TMyRecord = record
|
|
|
+ ALotOfData: array[0..10000] of Cardinal;
|
|
|
+ MyPointer: PMyInnerRecord;
|
|
|
+ end;
|
|
|
+var
|
|
|
+ MyGlobalVariable: TMyRecord;
|
|
|
+
|
|
|
+implementation
|
|
|
+
|
|
|
+procedure TestProcedure;
|
|
|
+begin
|
|
|
+ with MyGlobalVariable.MyPointer^ do begin
|
|
|
+ end;
|
|
|
+end;
|
|
|
+
|
|
|
+begin {main}
|
|
|
+end.
|