Browse Source

* small tp7 fix
* fix void pointer with formaldef

peter 26 years ago
parent
commit
1e89937590
2 changed files with 16 additions and 7 deletions
  1. 9 4
      compiler/htypechk.pas
  2. 7 3
      compiler/tccal.pas

+ 9 - 4
compiler/htypechk.pas

@@ -628,7 +628,7 @@ implementation
         end;
         end;
         valid_for_formal_var:=v;
         valid_for_formal_var:=v;
      end;
      end;
-     
+
    function  valid_for_formal_const(p : ptree) : boolean;
    function  valid_for_formal_const(p : ptree) : boolean;
      var
      var
         v : boolean;
         v : boolean;
@@ -636,11 +636,12 @@ implementation
         { p must have been firstpass'd before }
         { p must have been firstpass'd before }
         { accept about anything but not a statement ! }
         { accept about anything but not a statement ! }
         v:=true;
         v:=true;
-        if not assigned(p^.resulttype) or (p^.resulttype=voiddef) then
+        if (p^.treetype in [calln,statementn]) then
+      {  if not assigned(p^.resulttype) or (p^.resulttype=pdef(voiddef)) then }
           v:=false;
           v:=false;
         valid_for_formal_const:=v;
         valid_for_formal_const:=v;
      end;
      end;
-     
+
     function is_procsym_load(p:Ptree):boolean;
     function is_procsym_load(p:Ptree):boolean;
       begin
       begin
          is_procsym_load:=((p^.treetype=loadn) and (p^.symtableentry^.typ=procsym)) or
          is_procsym_load:=((p^.treetype=loadn) and (p^.symtableentry^.typ=procsym)) or
@@ -683,7 +684,11 @@ implementation
 end.
 end.
 {
 {
   $Log$
   $Log$
-  Revision 1.22  1999-04-21 22:00:01  pierre
+  Revision 1.23  1999-04-26 09:30:47  peter
+    * small tp7 fix
+    * fix void pointer with formaldef
+
+  Revision 1.22  1999/04/21 22:00:01  pierre
     + valid_for_formal_var and valid_for_formal_const added
     + valid_for_formal_var and valid_for_formal_const added
 
 
   Revision 1.21  1999/04/21 16:31:40  pierre
   Revision 1.21  1999/04/21 16:31:40  pierre

+ 7 - 3
compiler/tccal.pas

@@ -277,7 +277,7 @@ implementation
               { into a register }
               { into a register }
               { is this usefull here ? }
               { is this usefull here ? }
               { this was missing in formal parameter list   }
               { this was missing in formal parameter list   }
-              if (defcoll^.data=cformaldef) then
+              if (defcoll^.data=pdef(cformaldef)) then
                 begin
                 begin
                   if defcoll^.paratyp=vs_var then
                   if defcoll^.paratyp=vs_var then
                     if not valid_for_formal_var(p^.left) then
                     if not valid_for_formal_var(p^.left) then
@@ -286,7 +286,7 @@ implementation
                     if not valid_for_formal_const(p^.left) then
                     if not valid_for_formal_const(p^.left) then
                       CGMessage(parser_e_illegal_parameter_list);
                       CGMessage(parser_e_illegal_parameter_list);
                 end;
                 end;
-                
+
               if defcoll^.paratyp=vs_var then
               if defcoll^.paratyp=vs_var then
                 begin
                 begin
                    set_unique(p^.left);
                    set_unique(p^.left);
@@ -1149,7 +1149,11 @@ implementation
 end.
 end.
 {
 {
   $Log$
   $Log$
-  Revision 1.35  1999-04-21 21:49:18  pierre
+  Revision 1.36  1999-04-26 09:30:46  peter
+    * small tp7 fix
+    * fix void pointer with formaldef
+
+  Revision 1.35  1999/04/21 21:49:18  pierre
    * previous log corrected
    * previous log corrected
 
 
   Revision 1.34  1999/04/21 16:31:46  pierre
   Revision 1.34  1999/04/21 16:31:46  pierre