mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-04-16 08:59:26 +02:00
* correctly encapsulate the RTTI data for sets to avoid alignment problems with the new SetSize field (fixes compilation on Sparc and basically every other target that requires proper alignment with 64-bit values dictating an 8-Byte alignment)
git-svn-id: trunk@37201 -
This commit is contained in:
parent
e702b79063
commit
50788e8b3b
@ -998,7 +998,7 @@ implementation
|
||||
begin
|
||||
write_header(tcb,def,tkSet);
|
||||
tcb.begin_anonymous_record(
|
||||
internaltypeprefixName[itp_rtti_set],
|
||||
internaltypeprefixName[itp_rtti_set_outer],
|
||||
defaultpacking,reqalign,
|
||||
targetinfos[target_info.system]^.alignment.recordalignmin,
|
||||
targetinfos[target_info.system]^.alignment.maxCrecordalign);
|
||||
@ -1012,13 +1012,15 @@ implementation
|
||||
else
|
||||
tcb.emit_ord_const(otUByte,u8inttype);
|
||||
end;
|
||||
tcb.begin_anonymous_record(
|
||||
internaltypeprefixName[itp_rtti_set_inner],
|
||||
defaultpacking,reqalign,
|
||||
targetinfos[target_info.system]^.alignment.recordalignmin,
|
||||
targetinfos[target_info.system]^.alignment.maxCrecordalign);
|
||||
tcb.emit_ord_const(def.size,sizesinttype);
|
||||
tcb.end_anonymous_record;
|
||||
tcb.begin_anonymous_record(internaltypeprefixName[itp_rtti_ref],defaultpacking,reqalign,
|
||||
targetinfos[target_info.system]^.alignment.recordalignmin,
|
||||
targetinfos[target_info.system]^.alignment.maxCrecordalign);
|
||||
write_rtti_reference(tcb,def.elementdef,rt);
|
||||
tcb.end_anonymous_record;
|
||||
tcb.end_anonymous_record;
|
||||
end;
|
||||
|
||||
|
||||
|
@ -721,7 +721,8 @@ type
|
||||
itp_rtti_enum_min_max_rec,
|
||||
itp_rtti_enum_basetype_array_rec,
|
||||
itp_rtti_ref,
|
||||
itp_rtti_set,
|
||||
itp_rtti_set_outer,
|
||||
itp_rtti_set_inner,
|
||||
itp_init_record_operators,
|
||||
itp_threadvar_record,
|
||||
itp_objc_method_list,
|
||||
@ -865,7 +866,8 @@ inherited_objectoptions : tobjectoptions = [oo_has_virtual,oo_has_private,oo_has
|
||||
'$rtti_enum_min_max_rec$',
|
||||
'$rtti_enum_basetype_array_rec$',
|
||||
'$rtti_ref$',
|
||||
'$rtti_set$',
|
||||
'$rtti_set_outer$',
|
||||
'$rtti_set_inner$',
|
||||
'$init_record_operators$',
|
||||
'$threadvar_record$',
|
||||
'$objc_method_list$',
|
||||
|
Loading…
Reference in New Issue
Block a user