浏览代码

* fixed evaluation of expressions with empty sets that are calculated
at compile time

Jonas Maebe 23 年之前
父节点
当前提交
aa2fef1733
共有 1 个文件被更改,包括 12 次插入2 次删除
  1. 12 2
      compiler/nset.pas

+ 12 - 2
compiler/nset.pas

@@ -259,7 +259,13 @@ implementation
           inserttypeconv(left,tsetdef(right.resulttype.def).elementtype);
           inserttypeconv(left,tsetdef(right.resulttype.def).elementtype);
 
 
          { empty set then return false }
          { empty set then return false }
-         if not assigned(tsetdef(right.resulttype.def).elementtype.def) then
+         if not assigned(tsetdef(right.resulttype.def).elementtype.def) or
+            ((right.nodetype = setconstn) and
+{$ifdef oldset}
+             (byteset(tsetconstnode(right).value_set^) = [])) then
+{$else oldset}
+             (tsetconstnode(right).value_set^ = [])) then
+{$endif oldset}
           begin
           begin
             t:=cordconstnode.create(0,booltype);
             t:=cordconstnode.create(0,booltype);
             resulttypepass(t);
             resulttypepass(t);
@@ -591,7 +597,11 @@ begin
 end.
 end.
 {
 {
   $Log$
   $Log$
-  Revision 1.29  2002-07-23 12:34:30  daniel
+  Revision 1.30  2002-07-23 13:19:40  jonas
+    * fixed evaluation of expressions with empty sets that are calculated
+      at compile time
+
+  Revision 1.29  2002/07/23 12:34:30  daniel
   * Readded old set code. To use it define 'oldset'. Activated by default
   * Readded old set code. To use it define 'oldset'. Activated by default
     for ppc.
     for ppc.