diff --git a/compiler/i386/cpupara.pas b/compiler/i386/cpupara.pas index 39b7116481..7edf65317a 100644 --- a/compiler/i386/cpupara.pas +++ b/compiler/i386/cpupara.pas @@ -103,6 +103,7 @@ unit cpupara; { Win32 GCC returns small records in the FUNCTION_RETURN_REG. For stdcall we follow delphi instead of GCC } if (calloption in [pocall_cdecl,pocall_cppdecl]) and + (def.size>0) and (def.size<=8) then begin result:=false; @@ -116,7 +117,8 @@ unit cpupara; case def.deftype of recorddef : begin - if (def.size <= 8) then + if (def.size > 0) and + (def.size <= 8) then begin result := false; exit;