浏览代码

* correctly align the stream on targets that require proper alignment

git-svn-id: trunk@42522 -
svenbarth 6 年之前
父节点
当前提交
811d39d995
共有 1 个文件被更改,包括 13 次插入0 次删除
  1. 13 0
      tests/test/tcustomattr13.pp

+ 13 - 0
tests/test/tcustomattr13.pp

@@ -75,6 +75,16 @@ begin
 end;
 
 procedure CheckAttr1(aStrm: TStream);
+{$ifdef FPC_REQUIRES_PROPER_ALIGNMENT}
+{$push}
+{$packrecords c}
+type
+  TAlignDummy = record
+    b: Byte;
+    s: Single;
+  end;
+{$pop}
+{$endif}
 var
   b: Byte;
   ss: ShortString;
@@ -93,6 +103,9 @@ begin
     Halt(24);
   if ss <> StrHelloWorld then
     Halt(25);
+{$ifdef FPC_REQUIRES_PROPER_ALIGNMENT}
+  aStrm.Position := Align(PtrUInt(aStrm.Position), PtrInt(@TAlignDummy(nil^).s)));
+{$endif}
   if aStrm.Read(s, SizeOf(Single)) <> SizeOf(Single) then
     Halt(26);
   if s <> Single(SingleVal) then