From da7fdf76d58378b12182448766523be7c833fdfe Mon Sep 17 00:00:00 2001 From: Jonas Maebe Date: Sun, 13 Sep 2009 20:56:22 +0000 Subject: [PATCH] * always put parameters in left-to-right order in rtti (Delphi-compatible) * adapted test (and removed BOM) git-svn-id: trunk@13708 - --- compiler/ncgrtti.pas | 15 +++------------ tests/webtbs/tw12038.pp | 12 ++++++------ 2 files changed, 9 insertions(+), 18 deletions(-) diff --git a/compiler/ncgrtti.pas b/compiler/ncgrtti.pas index ca39913631..5dfbe2fc79 100644 --- a/compiler/ncgrtti.pas +++ b/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); diff --git a/tests/webtbs/tw12038.pp b/tests/webtbs/tw12038.pp index 0dccb06e6a..efc0319267 100644 --- a/tests/webtbs/tw12038.pp +++ b/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