Browse Source

* fixed crash with unknown id and colon parameter in write

peter 26 years ago
parent
commit
538e677425
2 changed files with 12 additions and 5 deletions
  1. 5 1
      compiler/pexpr.pas
  2. 7 4
      compiler/tcinl.pas

+ 5 - 1
compiler/pexpr.pas

@@ -1158,6 +1158,7 @@ unit pexpr;
                             end;
                  errorsym : begin
                               p1:=genzeronode(errorn);
+                              p1^.resulttype:=generrordef;
                               pd:=generrordef;
                               if token=LKLAMMER then
                                begin
@@ -2060,7 +2061,10 @@ unit pexpr;
 end.
 {
   $Log$
-  Revision 1.125  1999-07-27 23:42:14  peter
+  Revision 1.126  1999-07-30 12:28:40  peter
+    * fixed crash with unknown id and colon parameter in write
+
+  Revision 1.125  1999/07/27 23:42:14  peter
     * indirect type referencing is now allowed
 
   Revision 1.124  1999/07/23 21:31:42  peter

+ 7 - 4
compiler/tcinl.pas

@@ -712,8 +712,8 @@ implementation
                                               frac_para:=nil;
                                               hpp:=hp^.right;
                                            end;
-                                         isreal:=hpp^.resulttype^.deftype=floatdef;
-                                         if (not is_integer(length_para^.resulttype)) then
+                                         isreal:=(hpp^.left^.resulttype^.deftype=floatdef);
+                                         if (not is_integer(length_para^.left^.resulttype)) then
                                           CGMessage(type_e_integer_expr_expected)
                                         else
                                           length_para^.left:=gentypeconvnode(length_para^.left,s32bitdef);
@@ -721,7 +721,7 @@ implementation
                                           begin
                                             if isreal then
                                              begin
-                                               if (not is_integer(frac_para^.resulttype)) then
+                                               if (not is_integer(frac_para^.left^.resulttype)) then
                                                  CGMessage(type_e_integer_expr_expected)
                                                else
                                                  frac_para^.left:=gentypeconvnode(frac_para^.left,s32bitdef);
@@ -1123,7 +1123,10 @@ implementation
 end.
 {
   $Log$
-  Revision 1.42  1999-07-18 14:47:35  florian
+  Revision 1.43  1999-07-30 12:28:43  peter
+    * fixed crash with unknown id and colon parameter in write
+
+  Revision 1.42  1999/07/18 14:47:35  florian
     * bug 487 fixed, (inc(<property>) isn't allowed)
     * more fixes to compile with Delphi