diff --git a/packages/fcl-passrc/src/pastree.pp b/packages/fcl-passrc/src/pastree.pp index 7a4badac11..c2c64b07e1 100644 --- a/packages/fcl-passrc/src/pastree.pp +++ b/packages/fcl-passrc/src/pastree.pp @@ -822,7 +822,8 @@ type TProcedureModifier = (pmVirtual, pmDynamic, pmAbstract, pmOverride, pmExport, pmOverload, pmMessage, pmReintroduce, pmStatic,pmInline,pmAssembler,pmVarargs, pmPublic, - pmCompilerProc,pmExternal,pmForward, pmDispId, pmNoReturn); + pmCompilerProc,pmExternal,pmForward, pmDispId, + pmNoReturn, pmfar); TProcedureModifiers = Set of TProcedureModifier; TProcedureMessageType = (pmtNone,pmtInteger,pmtString); @@ -1405,7 +1406,8 @@ const = ('virtual', 'dynamic','abstract', 'override', 'export', 'overload', 'message', 'reintroduce', 'static','inline','assembler','varargs', 'public', - 'compilerproc','external','forward','dispid','noreturn'); + 'compilerproc','external','forward','dispid', + 'noreturn','far'); VariableModifierNames : Array[TVariableModifier] of string = ('cvar', 'external', 'public', 'export', 'class', 'static'); diff --git a/packages/fcl-passrc/tests/tcprocfunc.pas b/packages/fcl-passrc/tests/tcprocfunc.pas index 597f40b364..db37a12ce4 100644 --- a/packages/fcl-passrc/tests/tcprocfunc.pas +++ b/packages/fcl-passrc/tests/tcprocfunc.pas @@ -130,6 +130,8 @@ type Procedure TestFunctionForwardInterface; Procedure TestProcedureForward; Procedure TestFunctionForward; + Procedure TestProcedureFar; + Procedure TestFunctionFar; Procedure TestProcedureCdeclForward; Procedure TestFunctionCDeclForward; Procedure TestProcedureCompilerProc; @@ -943,6 +945,20 @@ begin AssertFunc([pmforward],ccDefault,0); end; +procedure TTestProcedureFunction.TestProcedureFar; +begin + AddDeclaration('procedure A; far;'); + ParseProcedure; + AssertProc([pmfar],ccDefault,0); +end; + +procedure TTestProcedureFunction.TestFunctionFar; +begin + AddDeclaration('function A : integer; far;'); + ParseFunction; + AssertFunc([pmfar],ccDefault,0); +end; + procedure TTestProcedureFunction.TestProcedureCdeclForward; begin UseImplementation:=True;