From 7c0e2159afb3235950d3d8f61ef085cd1ccf0dfc Mon Sep 17 00:00:00 2001 From: Gaius Mulley Date: Sat, 3 Jun 2023 15:27:58 +0100 Subject: [PATCH] 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 --- gcc/m2/gm2-compiler/P2SymBuild.mod | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/gcc/m2/gm2-compiler/P2SymBuild.mod b/gcc/m2/gm2-compiler/P2SymBuild.mod index de56cc46c5c..98a51ea2ca1 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,