소스 검색

* fixed for counter var check (merged)

peter 25 년 전
부모
커밋
48ff9b0e4c
1개의 변경된 파일11개의 추가작업 그리고 8개의 파일을 삭제
  1. 11 8
      compiler/tcflw.pas

+ 11 - 8
compiler/tcflw.pas

@@ -325,18 +325,18 @@ implementation
           hp:=hp^.left;
           hp:=hp^.left;
          { we need a simple loadn, but the load must be in a global symtable or
          { we need a simple loadn, but the load must be in a global symtable or
            in the same lexlevel }
            in the same lexlevel }
-         if (hp^.treetype<>funcretn) and
-            (hp^.treetype<>loadn) and
-            (hp^.symtable^.symtablelevel>1) and
-            (hp^.symtable^.symtablelevel<>lexlevel) then
-          CGMessagePos(hp^.fileinfo,cg_e_illegal_count_var)
-         else
+         if (hp^.treetype=funcretn) or
+            ((hp^.treetype=loadn) and
+             ((hp^.symtable^.symtablelevel<=1) or
+              (hp^.symtable^.symtablelevel=lexlevel))) then
           begin
           begin
             if hp^.symtableentry^.typ=varsym then
             if hp^.symtableentry^.typ=varsym then
               pvarsym(hp^.symtableentry)^.varstate:=vs_used;
               pvarsym(hp^.symtableentry)^.varstate:=vs_used;
             if (not(is_ordinal(p^.t2^.resulttype)) or is_64bitint(p^.t2^.resulttype)) then
             if (not(is_ordinal(p^.t2^.resulttype)) or is_64bitint(p^.t2^.resulttype)) then
               CGMessagePos(hp^.fileinfo,type_e_ordinal_expr_expected);
               CGMessagePos(hp^.fileinfo,type_e_ordinal_expr_expected);
-          end;
+          end
+         else
+          CGMessagePos(hp^.fileinfo,cg_e_illegal_count_var);
 
 
          if p^.t2^.registers32>p^.registers32 then
          if p^.t2^.registers32>p^.registers32 then
            p^.registers32:=p^.t2^.registers32;
            p^.registers32:=p^.t2^.registers32;
@@ -637,7 +637,10 @@ implementation
 end.
 end.
 {
 {
   $Log$
   $Log$
-  Revision 1.7  2000-09-03 11:44:00  peter
+  Revision 1.8  2000-09-10 21:19:40  peter
+    * fixed for counter var check (merged)
+
+  Revision 1.7  2000/09/03 11:44:00  peter
     * error for not specified operand size, which is now required for
     * error for not specified operand size, which is now required for
       newer binutils (merged)
       newer binutils (merged)
     * previous commit fix for tcflw (merged)
     * previous commit fix for tcflw (merged)