* fix for mantis #22796: add alignment padding to records before inserting

hidden parameters while parsing the interface, because they may depend on
    the padded size (since the size was not yet padded in the interface and
    padded in the implementation, this could result in differences)

git-svn-id: trunk@22414 -
This commit is contained in:
Jonas Maebe 2012-09-17 14:34:03 +00:00
parent 349a682596
commit 64740049bf
2 changed files with 5 additions and 2 deletions

View File

@ -822,12 +822,13 @@ implementation
add_typedconst_init_routine(current_structdef);
consume(_END);
end;
{ make the record size aligned (has to be done before inserting the
parameters, because that may depend on the record's size) }
recst.addalignmentpadding;
{ don't keep track of procdefs in a separate list, because the
compiler may add additional procdefs (e.g. property wrappers for
the jvm backend) }
insert_record_hidden_paras(trecorddef(current_structdef));
{ make the record size aligned }
recst.addalignmentpadding;
{ restore symtable stack }
symtablestack.pop(recst);
if trecorddef(current_structdef).is_packed and is_managed_type(current_structdef) then

View File

@ -1,3 +1,5 @@
{ %norun }
program CompileError;
{$mode delphi}{$H+}