Przeglądaj źródła

* always put parameters in left-to-right order in rtti (Delphi-compatible)
* adapted test (and removed BOM)

git-svn-id: trunk@13708 -

Jonas Maebe 16 lat temu
rodzic
commit
da7fdf76d5
2 zmienionych plików z 9 dodań i 18 usunięć
  1. 3 12
      compiler/ncgrtti.pas
  2. 6 6
      tests/webtbs/tw12038.pp

+ 3 - 12
compiler/ncgrtti.pas

@@ -681,18 +681,9 @@ implementation
                { write parameter info. The parameters must be written in reverse order
                  if this method uses right to left parameter pushing! }
                current_asmdata.asmlists[al_rtti].concat(Tai_const.Create_8bit(def.maxparacount));
-{$ifdef i386}
-               if def.proccalloption in pushleftright_pocalls then
-                 begin
-                   for i:=0 to def.paras.count-1 do
-                     write_para(tparavarsym(def.paras[i]));
-                 end
-               else
-{$endif}
-                 begin
-                   for i:=def.paras.count-1 downto 0 do
-                     write_para(tparavarsym(def.paras[i]));
-                 end;
+
+               for i:=0 to def.paras.count-1 do
+                 write_para(tparavarsym(def.paras[i]));
 
                { write name of result type }
                write_rtti_name(def.returndef);

+ 6 - 6
tests/webtbs/tw12038.pp

@@ -1,4 +1,4 @@
-{$M+}
+{$M+}
 program RTTI132;
 
 {$IFDEF FPC}
@@ -357,11 +357,11 @@ end;
 const
   expectedresults: array[0..6] of ansistring = (
     '',
-    'function (out Out1: Int64; const P: Pointer; var array of reference ?Array1: AnsiString): Int64 of object;',
-    'procedure (const adresse ?Component4: TComponent; adresse ?out Component3: TComponent; var adresse ?Component2: TComponent; adresse ?Component1: TComponent) of object;',
-    'function (array of reference ?out D: Byte; var array of reference ?C: Byte; const array of reference ?B: Byte; array of reference ?A: Byte): TComponent of object;',
-    'function (const A: LongInt; var S: AnsiString): Int64 of object;',
-    'function (Six: LongInt; array of reference ?Five: Byte; Four: PInteger; adresse ?out Three: TMyObject; var Two: LongInt; const A: AnsiString): AnsiString of object;',
+    'function (var array of reference ?Array1: AnsiString; const P: Pointer; out Out1: Int64): Int64 of object;',
+    'procedure (adresse ?Component1: TComponent; var adresse ?Component2: TComponent; adresse ?out Component3: TComponent; const adresse ?Component4: TComponent) of object;',
+    'function (array of reference ?A: Byte; const array of reference ?B: Byte; var array of reference ?C: Byte; array of reference ?out D: Byte): TComponent of object;',
+    'function (var S: AnsiString; const A: LongInt): Int64 of object;',
+    'function (const A: AnsiString; var Two: LongInt; adresse ?out Three: TMyObject; Four: PInteger; array of reference ?Five: Byte; Six: LongInt): AnsiString of object;',
     'procedure (var S: AnsiString) of object;'
     );
 begin