diff --git a/packages/fcl-passrc/src/pastree.pp b/packages/fcl-passrc/src/pastree.pp index e70ac8674e..c89f8e2c26 100644 --- a/packages/fcl-passrc/src/pastree.pp +++ b/packages/fcl-passrc/src/pastree.pp @@ -810,7 +810,7 @@ type TProcedureModifier = (pmVirtual, pmDynamic, pmAbstract, pmOverride, pmExport, pmOverload, pmMessage, pmReintroduce, pmStatic,pmInline,pmAssembler,pmVarargs, pmPublic, - pmCompilerProc,pmExternal,pmForward, pmdispid); + pmCompilerProc,pmExternal,pmForward, pmdispid, pmnoreturn); TProcedureModifiers = Set of TProcedureModifier; TProcedureMessageType = (pmtNone,pmtInteger,pmtString); @@ -1390,7 +1390,7 @@ const = ('virtual', 'dynamic','abstract', 'override', 'export', 'overload', 'message', 'reintroduce', 'static','inline','assembler','varargs', 'public', - 'compilerproc','external','forward','dispid'); + 'compilerproc','external','forward','dispid','noreturn'); procedure ReleaseAndNil(var El: TPasElement); overload; diff --git a/packages/fcl-passrc/tests/tcprocfunc.pas b/packages/fcl-passrc/tests/tcprocfunc.pas index 7d2135019a..6a1fbe0e97 100644 --- a/packages/fcl-passrc/tests/tcprocfunc.pas +++ b/packages/fcl-passrc/tests/tcprocfunc.pas @@ -132,6 +132,7 @@ type Procedure TestProcedureCdeclForward; Procedure TestFunctionCDeclForward; Procedure TestProcedureCompilerProc; + Procedure TestProcedureNoReturn; Procedure TestFunctionCompilerProc; Procedure TestProcedureCDeclCompilerProc; Procedure TestFunctionCDeclCompilerProc; @@ -961,6 +962,12 @@ begin AssertProc([pmCompilerProc],ccDefault,0); end; +procedure TTestProcedureFunction.TestProcedureNoReturn; +begin + ParseProcedure(';noreturn;',''); + AssertProc([pmnoreturn],ccDefault,0); +end; + procedure TTestProcedureFunction.TestFunctionCompilerProc; begin AddDeclaration('function A : Integer; compilerproc');