Ver Fonte

* also compare procoptions and proctype when searching interface
implementations

peter há 20 anos atrás
pai
commit
272cf5b9f1
1 ficheiros alterados com 13 adições e 5 exclusões
  1. 13 5
      compiler/nobj.pas

+ 13 - 5
compiler/nobj.pas

@@ -31,8 +31,7 @@ interface
        cutils,cclasses,
        globtype,
        symdef,symsym,
-       aasmbase,aasmtai,
-       cpuinfo
+       aasmbase,aasmtai
        ;
 
     type
@@ -148,7 +147,7 @@ implementation
        gdb,
 {$endif GDB}
        aasmcpu,
-       cpubase,cgbase,parabase,
+       cgbase,parabase,
        cgutils,cgobj
        ;
 
@@ -1070,6 +1069,9 @@ implementation
 
 
     function tclassheader.gintfgetcprocdef(proc: tprocdef;const name: string): tprocdef;
+      const
+        po_comp = [po_classmethod,po_staticmethod,po_interrupt,po_iocheck,po_msgstr,po_msgint,
+                   po_exports,po_varargs,po_explicitparaloc,po_nostackframe];
       var
         sym: tsym;
         implprocdef : Tprocdef;
@@ -1093,7 +1095,9 @@ implementation
               begin
                 implprocdef:=tprocsym(sym).procdef[i];
                 if (compare_paras(proc.paras,implprocdef.paras,cp_none,[])>=te_equal) and
-                   (proc.proccalloption=implprocdef.proccalloption) then
+                   (proc.proccalloption=implprocdef.proccalloption) and
+                   (proc.proctypeoption=implprocdef.proctypeoption) and
+                   ((proc.procoptions*po_comp)=(implprocdef.procoptions*po_comp)) then
                   begin
                     gintfgetcprocdef:=implprocdef;
                     exit;
@@ -1401,7 +1405,11 @@ initialization
 end.
 {
   $Log$
-  Revision 1.83  2004-11-20 14:39:27  florian
+  Revision 1.84  2004-12-26 20:16:44  peter
+    * also compare procoptions and proctype when searching interface
+      implementations
+
+  Revision 1.83  2004/11/20 14:39:27  florian
     * write nil entry after last entry to vmt table so the size of the vmt can be determined
 
   Revision 1.82  2004/11/17 22:21:35  peter