Browse Source

* correctly align the stream on targets that require proper alignment

git-svn-id: trunk@42522 -
svenbarth 6 years ago
parent
commit
811d39d995
1 changed files with 13 additions and 0 deletions
  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