فهرست منبع

feat(express): verify proc7/8/9 exact; ConstToCard whole-c (no word0 deref)

Eric Streit 2 هفته پیش
والد
کامیت
a527357c38
1فایلهای تغییر یافته به همراه3 افزوده شده و 3 حذف شده
  1. 3 3
      src/compiler/EXPRESS.MOD

+ 3 - 3
src/compiler/EXPRESS.MOD

@@ -305,13 +305,13 @@ END FoldConstOp;
 PROCEDURE ConstToCard(c: RecordPtr; errPos: CARDINAL);
 BEGIN
   (*{04cd}*)
-  IF ((c^.word0 <> Compiler.IntType) AND (c^.word4 <> 1))
+  IF ((c <> Compiler.IntType) AND (c^.word4 <> 1))
      OR (c^.word2 <> Compiler.IntType)
      OR (curDesc^.mode <> 0)
      OR (RecordPtr(curDesc^.typ) <> Compiler.CardType)
      OR (INTEGER(curDesc^.value) < 0) THEN
-    IF NOT IsSet(c^.word0, RecordPtr(curDesc^.typ)) THEN
-      Errors.ReportAssignMismatch(SymTab.T1(c^.word0), SymTab.T1(curDesc^.typ), errPos);
+    IF NOT IsSet(c, RecordPtr(curDesc^.typ)) THEN
+      Errors.ReportAssignMismatch(SymTab.T1(c), SymTab.T1(curDesc^.typ), errPos);
     END;
   END;
 END ConstToCard;