浏览代码

* 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 -

Jonas Maebe 19 年之前
父节点
当前提交
5155de6d61
共有 1 个文件被更改,包括 3 次插入1 次删除
  1. 3 1
      compiler/i386/cpupara.pas

+ 3 - 1
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;