فهرست منبع

* para items are now reversed for pascal calling conventions

florian 22 سال پیش
والد
کامیت
d85e1a9bf4
2فایلهای تغییر یافته به همراه30 افزوده شده و 2 حذف شده
  1. 7 1
      compiler/pdecsub.pas
  2. 23 1
      compiler/symdef.pas

+ 7 - 1
compiler/pdecsub.pas

@@ -1770,6 +1770,9 @@ const
         { insert parentfp parameter if required }
         insert_parentfp_para(pd);
 
+        if pd.proccalloption=pocall_pascal then
+          tparaitem(pd.para.first):=reverseparaitems(tparaitem(pd.para.first));
+
         currpara:=tparaitem(pd.para.first);
         while assigned(currpara) do
          begin
@@ -2146,7 +2149,10 @@ const
 end.
 {
   $Log$
-  Revision 1.139  2003-09-28 21:44:55  peter
+  Revision 1.140  2003-10-01 16:49:05  florian
+    * para items are now reversed for pascal calling conventions
+
+  Revision 1.139  2003/09/28 21:44:55  peter
     * fix check that filedef needs var para
 
   Revision 1.138  2003/09/28 17:55:04  peter

+ 23 - 1
compiler/symdef.pas

@@ -745,6 +745,7 @@ interface
        pbestrealtype : ^ttype = @s64floattype;
 {$endif ARM}
 
+    function reverseparaitems(p: tparaitem): tparaitem;
     function mangledname_prefix(typeprefix:string;st:tsymtable):string;
 
 {$ifdef GDB}
@@ -793,6 +794,24 @@ implementation
                                   Helpers
 ****************************************************************************}
 
+    function reverseparaitems(p: tparaitem): tparaitem;
+      var
+        hp1, hp2: tparaitem;
+      begin
+        hp1:=nil;
+        while assigned(p) do
+          begin
+             { pull out }
+             hp2:=p;
+             p:=tparaitem(p.next);
+             { pull in }
+             tparaitem(hp2.next):=hp1;
+             hp1:=hp2;
+          end;
+        reverseparaitems:=hp1;
+      end;
+
+
     function mangledname_prefix(typeprefix:string;st:tsymtable):string;
       var
         s,
@@ -5876,7 +5895,10 @@ implementation
 end.
 {
   $Log$
-  Revision 1.166  2003-10-01 15:32:58  florian
+  Revision 1.167  2003-10-01 16:49:05  florian
+    * para items are now reversed for pascal calling conventions
+
+  Revision 1.166  2003/10/01 15:32:58  florian
     * fixed FullProcName to handle constructors, destructors and operators correctly
 
   Revision 1.165  2003/10/01 15:00:02  peter