* noreturn procedure modifier (bug ID 31285)

git-svn-id: trunk@35361 -
This commit is contained in:
michael 2017-01-29 15:12:29 +00:00
parent 0dc3d03755
commit a51efe50b7
2 changed files with 9 additions and 2 deletions

View File

@ -810,7 +810,7 @@ type
TProcedureModifier = (pmVirtual, pmDynamic, pmAbstract, pmOverride, TProcedureModifier = (pmVirtual, pmDynamic, pmAbstract, pmOverride,
pmExport, pmOverload, pmMessage, pmReintroduce, pmExport, pmOverload, pmMessage, pmReintroduce,
pmStatic,pmInline,pmAssembler,pmVarargs, pmPublic, pmStatic,pmInline,pmAssembler,pmVarargs, pmPublic,
pmCompilerProc,pmExternal,pmForward, pmdispid); pmCompilerProc,pmExternal,pmForward, pmdispid, pmnoreturn);
TProcedureModifiers = Set of TProcedureModifier; TProcedureModifiers = Set of TProcedureModifier;
TProcedureMessageType = (pmtNone,pmtInteger,pmtString); TProcedureMessageType = (pmtNone,pmtInteger,pmtString);
@ -1390,7 +1390,7 @@ const
= ('virtual', 'dynamic','abstract', 'override', = ('virtual', 'dynamic','abstract', 'override',
'export', 'overload', 'message', 'reintroduce', 'export', 'overload', 'message', 'reintroduce',
'static','inline','assembler','varargs', 'public', 'static','inline','assembler','varargs', 'public',
'compilerproc','external','forward','dispid'); 'compilerproc','external','forward','dispid','noreturn');
procedure ReleaseAndNil(var El: TPasElement); overload; procedure ReleaseAndNil(var El: TPasElement); overload;

View File

@ -132,6 +132,7 @@ type
Procedure TestProcedureCdeclForward; Procedure TestProcedureCdeclForward;
Procedure TestFunctionCDeclForward; Procedure TestFunctionCDeclForward;
Procedure TestProcedureCompilerProc; Procedure TestProcedureCompilerProc;
Procedure TestProcedureNoReturn;
Procedure TestFunctionCompilerProc; Procedure TestFunctionCompilerProc;
Procedure TestProcedureCDeclCompilerProc; Procedure TestProcedureCDeclCompilerProc;
Procedure TestFunctionCDeclCompilerProc; Procedure TestFunctionCDeclCompilerProc;
@ -961,6 +962,12 @@ begin
AssertProc([pmCompilerProc],ccDefault,0); AssertProc([pmCompilerProc],ccDefault,0);
end; end;
procedure TTestProcedureFunction.TestProcedureNoReturn;
begin
ParseProcedure(';noreturn;','');
AssertProc([pmnoreturn],ccDefault,0);
end;
procedure TTestProcedureFunction.TestFunctionCompilerProc; procedure TTestProcedureFunction.TestFunctionCompilerProc;
begin begin
AddDeclaration('function A : Integer; compilerproc'); AddDeclaration('function A : Integer; compilerproc');