aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGaius Mulley <gaiusmod2@gmail.com>2023-06-03 15:27:58 +0100
committerGaius Mulley <gaiusmod2@gmail.com>2023-06-03 15:27:58 +0100
commit7c0e2159afb3235950d3d8f61ef085cd1ccf0dfc (patch)
tree486a13a5ead731d662346d662f236e3635ad3ae0
parent38af81df6aac11d49f9378d1c628ccc3c815c3ff (diff)
downloadgcc-7c0e2159afb3235950d3d8f61ef085cd1ccf0dfc.zip
gcc-7c0e2159afb3235950d3d8f61ef085cd1ccf0dfc.tar.gz
gcc-7c0e2159afb3235950d3d8f61ef085cd1ccf0dfc.tar.bz2
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>
-rw-r--r--gcc/m2/gm2-compiler/P2SymBuild.mod9
1 files changed, 5 insertions, 4 deletions
diff --git a/gcc/m2/gm2-compiler/P2SymBuild.mod b/gcc/m2/gm2-compiler/P2SymBuild.mod
index de56cc4..98a51ea 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,