From 5155de6d6111eb2a71bee25c10dfdf59fb1ad0a3 Mon Sep 17 00:00:00 2001 From: Jonas Maebe Date: Wed, 15 Mar 2006 21:48:32 +0000 Subject: [PATCH] * fixed webtbs/tw2514 for darwin/i386 (and a similar bug for win32): you get an internalerror if you try to keep a 0-byte record in a register (because the paramgr then tries to allocate a register of size OS_NO) git-svn-id: trunk@2929 - --- compiler/i386/cpupara.pas | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) 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;