diff --git a/compiler/i386/cpupara.pas b/compiler/i386/cpupara.pas index 41b83a892c..4f16a301bb 100644 --- a/compiler/i386/cpupara.pas +++ b/compiler/i386/cpupara.pas @@ -302,7 +302,8 @@ unit cpupara; usedef:=forcetempdef; { on darwin/i386, if a record has only one field and that field is a single or double, it has to be returned like a single/double } - if (target_info.system in [system_i386_darwin,system_i386_iphonesim]) and + if (target_info.system in [system_i386_darwin,system_i386_iphonesim, + system_i386_freebsd,system_i386_openbsd,system_i386_os2]) and ((usedef.typ=recorddef) or is_object(usedef)) and tabstractrecordsymtable(tabstractrecorddef(usedef).symtable).has_single_field(sym) and