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 <gaiusmod2@gmail.com>
This commit is contained in:
parent
38af81df6a
commit
7c0e2159af
1 changed files with 5 additions and 4 deletions
|
@ -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,
|
||||
|
|
Loading…
Add table
Reference in a new issue