Przeglądaj źródła

* support mulitple overloads in implementation, this is delphi
compatible
* procsym only stores the overloads available in the interface

peter 22 lat temu
rodzic
commit
8dd0a4027a
2 zmienionych plików z 19 dodań i 15 usunięć
  1. 6 9
      compiler/psub.pas
  2. 13 6
      compiler/symsym.pas

+ 6 - 9
compiler/psub.pas

@@ -1103,14 +1103,6 @@ implementation
                  begin
                    Message1(parser_e_header_dont_match_forward,pd.fullprocname(false));
                    tprocsym(pd.procsym).write_parameter_lists(pd);
-                 end
-                else
-                 begin
-                   { check the global flag, for delphi this is not
-                     required }
-                   {if not(m_delphi in aktmodeswitches) and
-                      not(pd.procsym.owner.symtabletype=globalsymtable) then
-                     Message(parser_e_overloaded_must_be_all_global);}
                  end;
               end;
            end;
@@ -1317,7 +1309,12 @@ begin
 end.
 {
   $Log$
-  Revision 1.146  2003-09-12 19:07:42  daniel
+  Revision 1.147  2003-09-14 12:58:00  peter
+    * support mulitple overloads in implementation, this is delphi
+      compatible
+    * procsym only stores the overloads available in the interface
+
+  Revision 1.146  2003/09/12 19:07:42  daniel
     * Fixed fast spilling functionality by re-adding the code that initializes
       precoloured nodes to degree 255. I would like to play hangman on the one
       who removed that code.

+ 13 - 6
compiler/symsym.pas

@@ -854,9 +854,10 @@ implementation
          while assigned(p) do
            begin
              { only write the proc definitions that belong
-               to this procsym }
-             if (p^.def.procsym=self) then
-              inc(n);
+               to this procsym and are in the global symtable }
+             if (p^.def.procsym=self) and
+                (p^.def.owner.symtabletype=globalsymtable) then
+               inc(n);
              p:=p^.next;
            end;
          ppufile.putword(n);
@@ -865,8 +866,9 @@ implementation
          while assigned(p) do
            begin
              { only write the proc definitions that belong
-               to this procsym }
-             if (p^.def.procsym=self) then
+               to this procsym and are in the global symtable }
+             if (p^.def.procsym=self) and
+                (p^.def.owner.symtabletype=globalsymtable) then
                ppufile.putderef(p^.def,p^.defderef);
              p:=p^.next;
            end;
@@ -2660,7 +2662,12 @@ implementation
 end.
 {
   $Log$
-  Revision 1.115  2003-09-03 15:55:01  peter
+  Revision 1.116  2003-09-14 12:58:00  peter
+    * support mulitple overloads in implementation, this is delphi
+      compatible
+    * procsym only stores the overloads available in the interface
+
+  Revision 1.115  2003/09/03 15:55:01  peter
     * NEWRA branch merged
 
   Revision 1.114  2003/09/03 11:18:37  florian