Просмотр исходного кода

* fixed include/exclude for big endian after r6172

git-svn-id: trunk@6179 -
Jonas Maebe 18 лет назад
Родитель
Сommit
63ebc2a1b8
2 измененных файлов с 11 добавлено и 1 удалено
  1. 9 0
      compiler/defutil.pas
  2. 2 1
      compiler/ncginl.pas

+ 9 - 0
compiler/defutil.pas

@@ -230,6 +230,9 @@ interface
     {# returns true, if the type passed is a varset }
     function is_varset(p : tdef) : boolean;
 
+    {# returns true if the type passed is a normalset }
+    function is_normalset(p : tdef) : boolean;
+
     { # returns true if the procdef has no parameters and no specified return type }
     function is_bareprocdef(pd : tprocdef): boolean;
 
@@ -1023,6 +1026,12 @@ implementation
       end;
 
 
+    function is_normalset(p : tdef) : boolean;
+      begin
+        result:=(p.typ=setdef) and (tsetdef(p).settype = normset);
+      end;
+
+
     function is_bareprocdef(pd : tprocdef): boolean;
       begin
         result:=(pd.maxparacount=0) and

+ 2 - 1
compiler/ncginl.pas

@@ -510,7 +510,8 @@ implementation
           use_small : boolean;
           href : treference;
         begin
-          if not(is_varset(tcallparanode(left).resultdef)) then
+          if not(is_varset(tcallparanode(left).resultdef)) and
+             not(is_normalset(tcallparanode(left).resultdef)) then
             opsize:=int_cgsize(tcallparanode(left).resultdef.size)
           else
             opsize:=OS_32;