Browse Source

* only don't insert passing alignment immediately for anonymous records
rather than for any anonymous aggregate, since for arrays we do know
the alignment even if we don't know the element count (because it only
depends on the elementdef, which is/will be set immediately)

git-svn-id: trunk@34390 -

Jonas Maebe 9 years ago
parent
commit
a7c893064a
1 changed files with 3 additions and 1 deletions
  1. 3 1
      compiler/aasmcnst.pas

+ 3 - 1
compiler/aasmcnst.pas

@@ -1367,7 +1367,9 @@ implementation
        { if we're starting an anonymous record, we can't align it yet because
        { if we're starting an anonymous record, we can't align it yet because
          the alignment depends on the fields that will be added -> we'll do
          the alignment depends on the fields that will be added -> we'll do
          it at the end }
          it at the end }
-       else if not anonymous then
+       else if not anonymous or
+          ((def.typ<>recorddef) and
+           not is_object(def)) then
          begin
          begin
            { add padding if necessary, and update the current field/offset }
            { add padding if necessary, and update the current field/offset }
            info:=curagginfo;
            info:=curagginfo;