Преглед изворни кода

LLVM: fix variant records when alignment of first part is not the highest

Resolves #40015
Jonas Maebe пре 2 година
родитељ
комит
c5f4a6acd0
1 измењених фајлова са 2 додато и 1 уклоњено
  1. 2 1
      compiler/symtable.pas

+ 2 - 1
compiler/symtable.pas

@@ -2288,7 +2288,8 @@ implementation
                 if (varcount>=variantstarts.count) then
                   internalerror(2008051005);
                 { new variant part -> use the one with the biggest alignment }
-                i:=tempsymlist.indexof(tobject(variantstarts[varcount]));
+                fieldvs:=tfieldvarsym(variantstarts[varcount]);
+                i:=tempsymlist.indexof(fieldvs);
                 lastvaroffsetprocessed:=fieldvs.fieldoffset;
                 inc(varcount);
                 if (i<0) then