From: Gaius Mulley Date: Sat, 3 Jun 2023 14:27:58 +0000 (+0100) Subject: PR modula2/110003 Wrong source line listed for unused parameters X-Git-Tag: basepoints/gcc-15~8619 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=7c0e2159afb3235950d3d8f61ef085cd1ccf0dfc;p=thirdparty%2Fgcc.git PR modula2/110003 Wrong source line listed for unused parameters Ensure that the parameter token position is recorded for both definition and implementation modules. The shadow variable is created inside BuildFormalParameterSection. The shadow variable needs to have the other definition or implementation module token position set when CheckFormalParameterSection is called. This allows the MetaError family of procedures to request the implementation module token position when reporting unused parameters. gcc/m2/ChangeLog: PR modula2/110003 * gm2-compiler/P2SymBuild.mod (GetParameterShadowVar): Import. (CheckFormalParameterSection): Call PutDeclared for the shadow variable associated with the parameter. Signed-off-by: Gaius Mulley --- diff --git a/gcc/m2/gm2-compiler/P2SymBuild.mod b/gcc/m2/gm2-compiler/P2SymBuild.mod index de56cc46c5c6..98a51ea2ca12 100644 --- a/gcc/m2/gm2-compiler/P2SymBuild.mod +++ b/gcc/m2/gm2-compiler/P2SymBuild.mod @@ -59,7 +59,7 @@ FROM SymbolTable IMPORT NulSym, MakeSubrange, MakeVar, MakeType, PutType, MakeModuleCtor, - PutMode, PutDeclared, + PutMode, PutDeclared, GetParameterShadowVar, PutFieldEnumeration, PutSubrange, PutVar, PutConst, PutConstSet, PutConstructor, IsDefImp, IsType, IsRecord, IsRecordField, IsPointer, @@ -1820,14 +1820,15 @@ BEGIN (* different parameter names *) FailParameter('', 'the parameter has been declared with a different name', - OperandT(pi), ParamTotal+i, ProcSym) + OperandT (pi), ParamTotal+i, ProcSym) END ELSE - IF GetSymName(ParamI)=NulName + IF GetSymName (ParamI) = NulName THEN - PutParamName (OperandTok (pi), ProcSym, ParamTotal+i, OperandT(pi)) + PutParamName (OperandTok (pi), ProcSym, ParamTotal+i, OperandT (pi)) END END ; + PutDeclared (OperandTok (pi), GetParameterShadowVar (ParamI)) ; IF Unbounded THEN (* GetType(ParamI) yields an UnboundedSym or a PartialUnboundedSym,