Forráskód Böngészése

* discardresult modifier

git-svn-id: trunk@49013 -
michael 4 éve
szülő
commit
702322cfde

+ 2 - 2
packages/fcl-passrc/src/pastree.pp

@@ -1075,7 +1075,7 @@ type
                         pmExport, pmOverload, pmMessage, pmReintroduce,
                         pmInline, pmAssembler, pmPublic,
                         pmCompilerProc, pmExternal, pmForward, pmDispId,
-                        pmNoReturn, pmFar, pmFinal);
+                        pmNoReturn, pmFar, pmFinal, pmDiscardResult);
   TProcedureModifiers = Set of TProcedureModifier;
   TProcedureMessageType = (pmtNone,pmtInteger,pmtString);
 
@@ -1779,7 +1779,7 @@ const
                    'export', 'overload', 'message', 'reintroduce',
                    'inline','assembler','public',
                    'compilerproc','external','forward','dispid',
-                   'noreturn','far','final');
+                   'noreturn','far','final','discardresult');
 
   VariableModifierNames : Array[TVariableModifier] of string
      = ('cvar', 'external', 'public', 'export', 'class', 'static');

+ 8 - 0
packages/fcl-passrc/tests/tcprocfunc.pas

@@ -140,6 +140,7 @@ type
     Procedure TestFunctionVarArgs;
     Procedure TestProcedureCDeclVarargs;
     Procedure TestFunctionCDeclVarArgs;
+    procedure TestFunctionDiscardResult;
     Procedure TestProcedureForwardInterface;
     Procedure TestFunctionForwardInterface;
     Procedure TestProcedureForward;
@@ -879,6 +880,13 @@ begin
   AssertProc([],[],ccSysCall,0);
 end;
 
+procedure TTestProcedureFunction.TestFunctionDiscardResult;
+begin
+  AddDeclaration('function A : Integer; discardresult');
+  ParseFunction;
+  AssertFunc([pmDiscardResult],[],ccDefault,0);
+end;
+
 procedure TTestProcedureFunction.TestCallingConventionHardFloat;
 begin
   ParseProcedure('; HardFloat');

+ 2 - 1
packages/pastojs/src/pas2jsfiler.pp

@@ -513,7 +513,8 @@ const
     'DispId',
     'NoReturn',
     'Far',
-    'Final'
+    'Final',
+    'DiscardResult'
     );
   PCUProcedureModifiersImplProc = [pmInline,pmAssembler,pmCompilerProc,pmNoReturn];