https://gcc.gnu.org/g:5ce16f91f0a34df883eb76f3856b9d5f0924e646

commit r14-11058-g5ce16f91f0a34df883eb76f3856b9d5f0924e646
Author: GCC Administrator <gccadmin@gcc.gnu.org>
Date:   Wed Dec 4 00:27:27 2024 +0000

    Daily bump.

Diff:
---
 gcc/ChangeLog           |   9 +
 gcc/DATESTAMP           |   2 +-
 gcc/m2/ChangeLog        | 528 ++++++++++++++++++++++++++++++++++++++++++++++++
 gcc/po/ChangeLog        |   4 +
 gcc/testsuite/ChangeLog |  45 +++++
 5 files changed, 587 insertions(+), 1 deletion(-)

diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 10fb3a1ec860..fb77eb60cee9 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,12 @@
+2024-12-03  Tamar Christina  <tamar.christ...@arm.com>
+
+       Backported from master:
+       2024-11-22  Tamar Christina  <tamar.christ...@arm.com>
+
+       PR tree-optimization/116463
+       * tree-vect-slp-patterns.cc (complex_mul_pattern::matches,
+       complex_fms_pattern::matches): Try swapping operands on multiply.
+
 2024-12-02  Andre Vieira  <andre.simoesdiasvie...@arm.com>
 
        Backported from master:
diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index ba184185f0bd..74f6fd4e4e45 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20241203
+20241204
diff --git a/gcc/m2/ChangeLog b/gcc/m2/ChangeLog
index 6cec473dd189..15c2dc950249 100644
--- a/gcc/m2/ChangeLog
+++ b/gcc/m2/ChangeLog
@@ -1,3 +1,531 @@
+2024-12-04  Gaius Mulley  <gaiusm...@gmail.com>
+
+       Backported from master:
+       2024-11-15  Gaius Mulley  <gaiusm...@gmail.com>
+
+       PR modula2/117371
+       * gm2-compiler/M2Base.mod (MixMetaTypes): Add parameter TRUE to
+       MetaErrorDecl.
+       (IsUserType): Test against ZType.
+       (MixTypesDecl): Test for ZType.
+       * gm2-compiler/M2GenGCC.mod (ErrorMessageDecl): Add parameter TRUE to
+       MetaErrorDecl.
+       (CodeLastForIterator): New procedure.
+       (FoldLastForIterator): Ditto.
+       (PerformLastForIterator): Ditto.
+       (CodeStatement): Add case clause for LastForIteratorOp.
+       (ErrorMessageDecl): Add iserror parameter.
+       Call MetaErrorDecl with iserror parameter.
+       (checkIncorrectMeta): Call MetaErrorDecl with TRUE parameter.
+       (CheckBinaryExpressionTypes): Ditto.
+       (CheckElementSetTypes): Ditto.
+       * gm2-compiler/M2LexBuf.def (MakeVirtualTok): Update comment
+       detailing the fall back when UnknownTokenNo is encountered.
+       (MakeVirtual2Tok): Ditto.
+       * gm2-compiler/M2LexBuf.mod (MakeVirtualTok): Check against
+       UnknownTokenNo.
+       (MakeVirtual2Tok): Ditto.
+       * gm2-compiler/M2MetaError.def (MetaErrorDecl): Add error parameter.
+       * gm2-compiler/M2MetaError.mod (MetaErrorDecl): Add error
+       parameter.
+       Issue warning if error is FALSE.
+       * gm2-compiler/M2Quads.def (QuadOperator): Add LastForIteratorOp.
+       * gm2-compiler/M2Quads.mod (AddQuadInformation): New case clause
+       LastForIteratorOp.
+       (CheckAddTuple2Read): New procedure.
+       (BuildForLoopToRangeCheck): Remove.
+       (ForLoopLastIteratorVariable): Ditto.
+       (ForLoopLastIteratorConstant): Ditto.
+       (ForLoopLastIterator): Reimplement.
+       (BuildForToByDo): Remove ByType from call to ForLoopLastIterator.
+       (WriteQuad): New case clause LastForIteratorOp.
+       (WriteOperator): Ditto.
+       * gm2-compiler/M2Students.def
+       (CheckForVariableThatLooksLikeKeyword): Replace with ...
+       (CheckVariableAgainstKeyword): ... this.
+       * gm2-compiler/M2Students.mod
+       (CheckForVariableThatLooksLikeKeyword): Replace with ...
+       (CheckVariableAgainstKeyword): ... this.
+       * gm2-compiler/M2SymInit.mod (CheckLastForIterator): New
+       procedure.
+       (CheckReadBeforeInitQuad): New case clause to call
+       CheckLastForIterator.
+       * gm2-compiler/P2SymBuild.mod: Replace
+       CheckForVariableThatLooksLikeKeyword with CheckVariableAgainstKeyword.
+
+2024-12-03  Gaius Mulley  <gaiusm...@gmail.com>
+
+       Backported from master:
+       2024-11-15  Gaius Mulley  <gaiusm...@gmail.com>
+
+       * Make-lang.in (m2/gm2-compiler-boot/P0SyntaxCheck.c):
+       New rule.
+       (m2/gm2-compiler-boot/P0SyntaxCheck.o): Ditto.
+       (m2/gm2-compiler-boot/P1Build.c): Ditto.
+       (m2/gm2-compiler-boot/P1Build.o): Ditto.
+       (m2/gm2-compiler-boot/P2Build.c): Ditto.
+       (m2/gm2-compiler-boot/P2Build.o): Ditto.
+       (m2/gm2-compiler-boot/P3Build.c): Ditto.
+       (m2/gm2-compiler-boot/P3Build.o): Ditto.
+       (m2/gm2-compiler-boot/PCBuild.c): Ditto.
+       (m2/gm2-compiler-boot/PCBuild.o): Ditto.
+       (m2/gm2-compiler-boot/PHBuild.c): Ditto.
+       (m2/gm2-compiler-boot/PHBuild.o): Ditto.
+
+2024-12-03  Gaius Mulley  <gaiusm...@gmail.com>
+
+       Backported from master:
+       2024-11-11  Gaius Mulley  <gaiusm...@gmail.com>
+
+       * gm2-compiler/M2Base.def (MixTypes): Rename parameters.
+       (MixTypesDecl): New procedure function.
+       * gm2-compiler/M2Base.mod (BuildOrdFunctions): Add
+       DefProcedure parameter to PutFunction.
+       (BuildTruncFunctions): Ditto.
+       (BuildFloatFunctions): Ditto.
+       (BuildIntFunctions): Ditto.
+       (InitBaseFunctions): Ditto.
+       (MixTypesDecl): New procedure function.
+       (MixTypes): Reimplement.
+       * gm2-compiler/M2Check.mod (checkProcType): Replace
+       NoOfParam with NoOfParamAny.
+       Replace IsVarParam with IsVarParamAny.
+       (checkProcedureProcType): Ditto.
+       * gm2-compiler/M2Error.def: Remove unnecessary export qualified list.
+       * gm2-compiler/M2GCCDeclare.mod: Replace NoOfParam with NoOfParamAny.
+       Replace IsVarParam with IsVarParamAny.
+       (DeclareProcedureToGccWholeProgram): Rename son to
+       Variable.
+       (DeclareProcedureToGccSeparateProgram): Ditto.
+       (PrintKind): New procedure.
+       (PrintProcedureParameters): Ditto.
+       (PrintProcedureReturnType): Ditto.
+       (PrintProcedure): Reimplement.
+       (PrintProcTypeParameters): New procedure.
+       (PrintProcType): Ditto.
+       (DeclareProcType): Rename Son to Parameter.
+       * gm2-compiler/M2GenGCC.mod: Replace NoOfParam with NoOfParamAny.
+       Replace IsVarParam with IsVarParamAny.
+       (ErrorMessageDecl): New procedure.
+       (checkIncorrectMeta): Replace call to MetaErrorT2 with
+       ErrorMessageDecl.
+       (ComparisonMixTypes): Add varleft and varright parameters.
+       Adjust all callers of ComparisonMixTypes.
+       * gm2-compiler/M2MetaError.def (MetaErrorDecl): New procedure.
+       * gm2-compiler/M2MetaError.mod (MetaErrorDecl): New procedure.
+       * gm2-compiler/M2Options.def (SetXCode): Add -fd flag description
+       to comment.
+       * gm2-compiler/M2Options.mod (SetXCode): Add -fd flag description
+       to comment.
+       * gm2-compiler/M2Quads.mod (CheckBreak): New procedure.
+       Replace NoOfParam with NoOfParamAny.
+       Replace IsVarParam with IsVarParamAny.
+       (FailParameter): Reimplement using GetVarDeclFullTok.
+       Generate message for formal parameter, actual parameter and
+       declaration of actual parameter.
+       (WarnParameter): Ditto.
+       (CheckBuildFunction): Reimplement error message using MetaErrorT1.
+       * gm2-compiler/M2Range.mod: Replace NoOfParam with NoOfParamAny.
+       Replace IsVarParam with IsVarParamAny.
+       * gm2-compiler/M2Scaffold.mod (DeclareScaffoldFunctions): Call
+       PutProcedureDefined after every procedure declaration.
+       (DeclareArgEnvParams): Add ProperProcedure parameter to PutParam.
+       * gm2-compiler/M2Size.mod (MakeSize): Add DefProcedure parameter
+       to PutFunction.
+       * gm2-compiler/M2Swig.mod: Replace NoOfParam with NoOfParamAny.
+       Replace IsVarParam with IsVarParamAny.
+       * gm2-compiler/M2SymInit.mod: Ditto.
+       * gm2-compiler/M2System.mod (InitSystem): Add DefProcedure
+       parameter to PutFunction.
+       * gm2-compiler/P1SymBuild.mod (StartBuildProcedure): Reimplement.
+       (EndBuildProcedure): Ditto.
+       (EndBuildForward): Ditto.
+       * gm2-compiler/P2Build.bnf (BuildProcedureDefinedByForward):
+       Remove.
+       (BuildProcedureDefinedByProper): Ditto.
+       (ForwardDeclaration): Remove BuildProcedureDefinedByForward.
+       (BuildNoReturnAttribute): Remove parameter.
+       * gm2-compiler/P2SymBuild.def (BuildNoReturnAttribute): Remove
+       parameter.
+       (BuildProcedureDefinedByForward): Remove.
+       (BuildProcedureDefinedByProper): Ditto.
+       * gm2-compiler/P2SymBuild.mod (Import): Remove
+       AreParametersDefinedInDefinition,
+       AreParametersDefinedInImplementation,
+       AreProcedureParametersDefined,
+       ParametersDefinedInDefinition,
+       ParametersDefinedInImplementation,
+       GetProcedureDeclaredDefinition,
+       GetProcedureDeclaredForward,
+       GetProcedureDeclaredProper,
+       GetParametersDefinedByForward,
+       GetParametersDefinedByProper and
+       PutProcedureNoReturn.
+       Add PutProcedureParametersDefined,
+       GetProcedureParametersDefined,
+       GetProcedureKindDesc,
+       GetProcedureDeclaredTok,
+       GetProcedureKind,
+       GetReturnTypeTok,
+       SetReturnOptional,
+       IsReturnOptional,
+       PutProcedureNoReturn and
+       PutProcedureDefined.
+       (Debug): New procedure.
+       (P2StartBuildDefModule): Space formatting.
+       (BuildVariable): Reimplement to record full declaration.
+       (StartBuildProcedure): Reimplement using token to determine
+       the kind of procedure.
+       (BuildProcedureHeading): Ditto.
+       (BuildFPSection): Ditto.
+       (BuildVarArgs): Ditto.
+       (BuildOptArg): Ditto.
+       (BuildProcedureDefinedByForward): Remove.
+       (BuildProcedureDefinedByProper): Ditto.
+       (BuildFormalParameterSection): Reimplement so that the
+       quad stack is unchanged.
+       (CheckFormalParameterSection): Ditto.
+       (RemoveFPParameters): New procedure.
+       (ParameterError): Reimplement.
+       (StartBuildFormalParameters): Add annotation.
+       (ParameterMismatch): Reimplement.
+       (EndBuildFormalParameters): Reimplement to check against
+       all procedure kinds.
+       (GetSourceDesc): Remove.
+       (GetCurSrcDesc): Ditto.
+       (GetDeclared): Ditto.
+       (ReturnTypeMismatch): Reimplement.
+       (BuildFunction): Ditto.
+       (BuildOptFunction): Ditto.
+       (CheckOptFunction): New procedure.
+       (BuildNoReturnAttribute): Remove parameter and obtain
+       procedure symbol from quad stack.
+       (CheckProcedureReturn): New procedure.
+       * gm2-compiler/P3SymBuild.mod (BuildOptArgInitializer):
+       Preserve ProcSym tok on the quad stack.
+       Add Assert.
+       * gm2-compiler/PCSymBuild.mod (fixupProcedureType): Replace
+       NoOfParam with NoOfParamAny.
+       * gm2-compiler/SymbolTable.def (GetNthParam): Add ProcedureKind
+       parameter.
+       (PutFunction): Ditto.
+       (PutOptFunction): Ditto.
+       (IsReturnOptional): Ditto.
+       (PutParam): Ditto.
+       (PutVarParam): Ditto.
+       (PutParamName): Ditto.
+       (PutProcedureNoReturn): Ditto.
+       (IsProcedureNoReturn): Ditto.
+       (IsVarParam): Ditto.
+       (IsUnboundedParam): Ditto.
+       (NoOfParam): Ditto.
+       (ForeachLocalSymDo): Ditto.
+       (GetProcedureKind): Ditto.
+       (GetProcedureDeclaredTok): Ditto.
+       (PutProcedureDeclaredTok): Ditto.
+       (GetReturnTypeTok): Ditto.
+       (PutReturnTypeTok): Ditto.
+       (PutParametersDefinedByForward): New procedure.
+       (PutProcedureParametersDefined): Ditto.
+       (PutProcedureDefined): Ditto.
+       (GetParametersDefinedByProper): Ditto.
+       (GetProcedureDeclaredForward): Ditto.
+       (GetProcedureDeclaredProper): Ditto.
+       (PutProcedureDeclaredProper): Ditto.
+       (GetProcedureDeclaredDefinition): Ditto.
+       (PutProcedureDeclaredDefinition): Ditto.
+       (GetProcedureDefined): Ditto.
+       (PutUseOptArg): Ditto.
+       (UsesOptArg): Ditto.
+       (PutOptArgInit): Ditto.
+       (SetReturnOptional): Ditto.
+       (UsesOptArgAny): Ditto.
+       (GetProcedureKindDesc): Ditto.
+       (IsReturnOptionalAny): New procedure function.
+       (GetNthParamAny): Ditto.
+       (NoOfParamAny): Ditto.
+       (IsProcedureAnyNoReturn): Ditto.
+       (AreParametersDefinedInImplementation): Remove.
+       (ParametersDefinedInImplementation): Ditto.
+       (AreParametersDefinedInDefinition): Ditto.
+       (AreProcedureParametersDefined): Ditto.
+       (ParametersDefinedInDefinition): Ditto.
+       (ProcedureParametersDefined): Ditto.
+       (PutParametersDefinedByProper): Ditto.
+       (PutProcedureDeclaredForward): Ditto.
+       (GetParametersDefinedByForward): Ditto.
+       (GetProcedureParametersDefined): Ditto.
+       (PushOffset): Ditto.
+       (PopSize): Ditto.
+       (PushParamSize): Ditto.
+       (PushSumOfLocalVarSize): Ditto.
+       (PushSumOfParamSize): Ditto.
+       (PopOffset): Ditto.
+       (PopSumOfParamSize): Ditto.
+       * gm2-compiler/SymbolTable.mod (MakeProcedure): Reimplement.
+       (PutProcedureNoReturn): Add ProcedureKind parameter.
+       (GetNthParam): Ditto.
+       (PutFunction): Ditto.
+       (PutOptFunction): Ditto.
+       (IsReturnOptional): Ditto.
+       (MakeVariableForParam): Ditto.
+       (PutParam): Ditto.
+       (PutVarParam): Ditto.
+       (PutParamName): Ditto.
+       (AddParameter): Ditto.
+       (IsVarParam): Ditto.
+       (IsVarParamAny): Ditto.
+       (NoOfParam): Ditto.
+       (HasVarParameters): Ditto.
+       (IsUnboundedParam): Ditto.
+       (PutUseVarArgs): Ditto.
+       (UsesVarArgs): Ditto.
+       (PutUseOptArg): Ditto.
+       (UsesOptArg): Ditto.
+       (UsesOptArgAny): Ditto.
+       (PutOptArgInit): Ditto.
+       (IsProcedure): Ditto.
+       (IsPointer): Ditto.
+       (IsRecord): Ditto.
+       (IsArray): Ditto.
+       (IsEnumeration): Ditto.
+       (IsUnbounded): Ditto.
+       (IsSet): Ditto.
+       (IsSetPacked): Ditto.
+       (CheckUnbounded): Ditto.
+       (IsOAFamily): Ditto.
+       (IsModuleWithinProcedure): Ditto.
+       (GetDeclaredDef): Ditto.
+       (GetDeclaredMod): Ditto.
+       (GetDeclaredFor): Ditto.
+       (GetProcedureDeclaredForward): Ditto.
+       (GetProcedureKind): Ditto.
+       (PutProcedureDeclaredForward): Ditto.
+       (GetProcedureDeclaredTok): Ditto.
+       (GetProcedureDeclaredProper): Ditto.
+       (PutProcedureDeclaredTok): Ditto.
+       (PutProcedureDeclaredProper): Ditto.
+       (GetReturnTypeTok): Ditto.
+       (GetProcedureDeclaredDefinition): Ditto.
+       (PutReturnTypeTok): Ditto.
+       (PutProcedureDeclaredDefinition): Ditto.
+       (GetProcedureKindDesc): Ditto.
+       (IsProcedureVariable): Ditto.
+       (IsAModula2Type): Ditto.
+       (GetParam): Ditto.
+       (ProcedureParametersDefined): Ditto.
+       (AreParametersDefinedInImplementation): Remove.
+       (AreParametersDefinedInDefinition): Ditto.
+       (AreProcedureParametersDefined): Ditto.
+       (IsSizeSolved): Ditto.
+       (IsOffsetSolved): Ditto.
+       (IsValueSolved): Ditto.
+       (IsSumOfParamSizeSolved): Ditto.
+       (PushSize): Ditto.
+       (PushOffset): Ditto.
+       (PopSize): Ditto.
+       (PushValue): Ditto.
+       (PushParamSize): Ditto.
+       (PushSumOfLocalVarSize): Ditto.
+       (PushSumOfParamSize): Ditto.
+       (PushVarSize): Ditto.
+       (PopValue): Ditto.
+       (PopSize): Ditto.
+       (PopOffset): Ditto.
+       (PopSumOfParamSize): Ditto.
+       (PutParametersDefinedByForward): New procedure.
+       (PutProcedureParametersDefined): Ditto.
+       (PutProcedureDefined): Ditto.
+       (GetParametersDefinedByProper): Ditto.
+       (GetProcedureDeclaredForward): Ditto.
+       (GetProcedureDeclaredProper): Ditto.
+       (PutProcedureDeclaredProper): Ditto.
+       (GetProcedureDeclaredDefinition): Ditto.
+       (PutProcedureDeclaredDefinition): Ditto.
+       (GetProcedureDefined): Ditto.
+       (PutUseOptArg): Ditto.
+       (UsesOptArg): Ditto.
+       (PutOptArgInit): Ditto.
+       (SetReturnOptional): Ditto.
+       (UsesOptArgAny): Ditto.
+       (GetProcedureKindDesc): Ditto.
+       (PutParametersDefinedByProper): Ditto.
+       (GetParametersDefinedByProper): Ditto.
+       (IsReturnOptionalAny): New procedure function.
+       (IsProcedureAnyDefaultBoolean): Ditto.
+       (IsProcedureAnyBoolean): Ditto.
+       (IsProcedureAnyNoReturn): Ditto.
+       (GetNthParamAny): Ditto.
+       (NoOfParamAny): Ditto.
+       (IsProcedureAnyNoReturn): Ditto.
+       (GetProcedureKind): Ditto.
+       (IsVarParamAny): Ditto.
+       (IsUnboundedParamAny): Ditto.
+       (ForeachParamSymDo): New comment.
+       * gm2-libs-coroutines/SYSTEM.mod: Reformat.
+
+2024-12-03  Gaius Mulley  <gaiusm...@gmail.com>
+
+       Backported from master:
+       2024-10-20  Gaius Mulley  <gaiusm...@gmail.com>
+
+       * gm2-compiler/M2MetaError.mod (op): Corrected ordering.
+       * gm2-compiler/P2SymBuild.def: Remove comment.
+       * gm2-compiler/P2SymBuild.mod (GetComparison): Replace
+       the word less with fewer.
+
+2024-12-03  Gaius Mulley  <gaiusm...@gmail.com>
+
+       Backported from master:
+       2024-10-19  Gaius Mulley  <gaiusm...@gmail.com>
+
+       * gm2-compiler/M2MetaError.mod (op): Alphabetically order
+       each case label and comment.
+
+2024-12-03  Gaius Mulley  <gaiusm...@gmail.com>
+
+       Backported from master:
+       2024-10-19  Gaius Mulley  <gaiusm...@gmail.com>
+
+       PR modula2/115328
+       * gm2-compiler/M2MetaError.def: Extend comment documentating
+       new format specifiers.
+       * gm2-compiler/M2MetaError.mod (GetTokProcedure): New declaration.
+       (doErrorScopeModule): New procedure.
+       (doErrorScopeForward): Ditto.
+       (doErrorScopeMod): Reimplement.
+       (doErrorScopeFor): New procedure.
+       (declarationMod): Ditto.
+       (doErrorScopeDefinition): Ditto.
+       (doErrorScopeDef): Reimplement.
+       (declaredDef): New procedure.
+       (declaredFor): Ditto.
+       (doErrorScopeProc): Ditto.
+       (declaredVar): Ditto.
+       (declaredType): Ditto.
+       (declaredFull): Ditto.
+       * gm2-compiler/M2Options.mod (SetAutoInit): Add missing
+       return type.
+       (GetDumpGimple): Remove duplicate implementation.
+       * gm2-compiler/M2Quads.def (DupFrame): New procedure.
+       * gm2-compiler/M2Quads.mod (DupFrame): New procedure.
+       * gm2-compiler/M2Reserved.def (ForwardTok): New variable.
+       * gm2-compiler/M2Reserved.mod (ForwardTok): Initialize variable.
+       * gm2-compiler/M2Scaffold.mod (DeclareArgEnvParams): Add
+       tokno parameter for call to PutParam.
+       * gm2-compiler/P0SymBuild.def (EndForward): New procedure.
+       * gm2-compiler/P0SymBuild.mod (EndForward): New procedure.
+       * gm2-compiler/P0SyntaxCheck.bnf (BlockAssert): New procedure.
+       (ProcedureDeclaration): Reimplement rule.
+       (PostProcedureHeading): New rule.
+       (ForwardDeclaration): Ditto.
+       (ProperProcedure): Ditto.
+       * gm2-compiler/P1Build.bnf (ProcedureDeclaration): Reimplement rule.
+       (PostProcedureHeading): New rule.
+       (ForwardDeclaration): Ditto.
+       (ProperProcedure): Ditto.
+       * gm2-compiler/P1SymBuild.def (Export): Removed unnecessary
+       export.
+       (EndBuildForward): New procedure.
+       * gm2-compiler/P1SymBuild.mod (StartBuildProcedure): Reimplement.
+       (EndBuildProcedure): Ditto.
+       (EndBuildForward): Ditto.
+       * gm2-compiler/P2Build.bnf (ProcedureDeclaration): Reimplement rule.
+       (PostProcedureHeading): New rule.
+       (ForwardDeclaration): Ditto.
+       (ProperProcedure): Ditto.
+       * gm2-compiler/P2SymBuild.def (BuildProcedureDefinedByForward):
+       New procedure.
+       (BuildProcedureDefinedByProper): Ditto.
+       (CheckProcedure): Ditto.
+       (EndBuildForward): Ditto.
+       * gm2-compiler/P2SymBuild.mod (EndBuildProcedure): Reimplement.
+       (EndBuildForward): New procedure.
+       (BuildFPSection): Reimplement to allow forward declaration or
+       checking of parameters.
+       (BuildProcedureDefinedByProper): New procedure.
+       (BuildProcedureDefinedByForward): Ditto
+       (FailParameter): Remove.
+       (ParameterError): New procedure.
+       (ParameterMismatch): Ditto.
+       (EndBuildFormalParameters): Add parameter number check.
+       (GetComparison): New procedure function.
+       (GetSourceDesc): Ditto.
+       (GetCurSrcDesc): Ditto.
+       (GetDeclared): New procedure.
+       (ReturnTypeMismatch): Ditto.
+       (BuildFunction): Reimplement.
+       (CheckProcedure): New procedure.
+       (CheckFormalParameterSection): Reimplement using ParameterError.
+       * gm2-compiler/P3Build.bnf (ProcedureDeclaration): Reimplement rule.
+       (PostProcedureHeading): New rule.
+       (ForwardDeclaration): Ditto.
+       (ProperProcedure): Ditto.
+       * gm2-compiler/P3SymBuild.def (Export): Remove unnecessary export.
+       (EndBuildForward): New procedure.
+       * gm2-compiler/P3SymBuild.mod (EndBuildForward): New procedure.
+       * gm2-compiler/PCBuild.bnf (ProcedureDeclaration): Reimplement rule.
+       (PostProcedureHeading): New rule.
+       (ForwardDeclaration): Ditto.
+       (ProperProcedure): Ditto.
+       * gm2-compiler/PCSymBuild.def (EndBuildForward): New procedure.
+       * gm2-compiler/PCSymBuild.mod (EndBuildForward): Ditto.
+       * gm2-compiler/PHBuild.bnf (ProcedureDeclaration): Reimplement rule.
+       (PostProcedureHeading): New rule.
+       (ForwardDeclaration): Ditto.
+       (ProperProcedure): Ditto.
+       * gm2-compiler/SymbolTable.def (PutVarTok): New procedure.
+       (PutParam): Add typetok parameter.
+       (PutVarParam): Ditto.
+       (PutParamName): Ditto.
+       (GetDeclaredFor): New procedure function.
+       (AreParametersDefinedInDefinition): Ditto.
+       (PutParametersDefinedByForward): New procedure.
+       (GetParametersDefinedByForward): New procedure function.
+       (PutParametersDefinedByProper): New procedure.
+       (GetParametersDefinedByProper): New procedure function.
+       (GetProcedureDeclaredForward): Ditto.
+       (PutProcedureDeclaredForward): New procedure.
+       (GetProcedureDeclaredProper): New procedure function.
+       (PutProcedureDeclaredProper): New procedure.
+       (GetProcedureDeclaredDefinition): New procedure function.
+       (PutProcedureDeclaredDefinition): New procedure.
+       (GetVarDeclTypeTok): Ditto.
+       (PutVarDeclTypeTok): New procedure.
+       (GetVarDeclTok): Ditto.
+       (PutVarDeclTok): New procedure.
+       (GetVarDeclFullTok): Ditto.
+       * gm2-compiler/SymbolTable.mod (ProcedureDecl): New record type.
+       (VarDecl): Ditto.
+       (SymProcedure): Add new field Declared.
+       (SymVar): Add new field Declared.
+       (PutVarTok): New procedure.
+       (PutParam): Add typetok parameter.
+       (PutVarParam): Ditto.
+       (PutParamName): Ditto.
+       (GetDeclaredFor): New procedure function.
+       (AreParametersDefinedInDefinition): Ditto.
+       (PutParametersDefinedByForward): New procedure.
+       (GetParametersDefinedByForward): New procedure function.
+       (PutParametersDefinedByProper): New procedure.
+       (GetParametersDefinedByProper): New procedure function.
+       (GetProcedureDeclaredForward): Ditto.
+       (PutProcedureDeclaredForward): New procedure.
+       (GetProcedureDeclaredProper): New procedure function.
+       (PutProcedureDeclaredProper): New procedure.
+       (GetProcedureDeclaredDefinition): New procedure function.
+       (PutProcedureDeclaredDefinition): New procedure.
+       (GetVarDeclTypeTok): Ditto.
+       (PutVarDeclTypeTok): New procedure.
+       (GetVarDeclTok): Ditto.
+       (PutVarDeclTok): New procedure.
+       (GetVarDeclFullTok): Ditto.
+       (MakeProcedure): Initialize Declared field.
+       (MakeVar): Initialize Declared field.
+       * gm2-libs-log/FileSystem.def (FileNameChar): Add
+       missing return type.
+       * m2.flex: Add FORWARD keyword.
+
 2024-12-02  Gaius Mulley  <gaiusm...@gmail.com>
 
        Backported from master:
diff --git a/gcc/po/ChangeLog b/gcc/po/ChangeLog
index 335d8effda52..15e832e10ee0 100644
--- a/gcc/po/ChangeLog
+++ b/gcc/po/ChangeLog
@@ -1,3 +1,7 @@
+2024-12-03  Joseph Myers  <josmy...@redhat.com>
+
+       * zh_CN.po: Update.
+
 2024-09-19  Joseph Myers  <josmy...@redhat.com>
 
        * zh_CN.po: Update.
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 2105610fda40..b6900ed3405a 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,48 @@
+2024-12-04  Gaius Mulley  <gaiusm...@gmail.com>
+
+       Backported from master:
+       2024-11-15  Gaius Mulley  <gaiusm...@gmail.com>
+
+       PR modula2/117371
+       * gm2/iso/fail/forloopbyvar.mod: New test.
+       * gm2/iso/fail/forloopbyvar4.mod: New test.
+       * gm2/iso/fail/forloopbyvar5.mod: New test.
+       * gm2/iso/pass/forloopbyvar3.mod: New test.
+
+2024-12-03  Gaius Mulley  <gaiusm...@gmail.com>
+
+       Backported from master:
+       2024-11-11  Gaius Mulley  <gaiusm...@gmail.com>
+
+       * gm2/iso/fail/badexpression3.mod: New test.
+       * gm2/iso/fail/badparam4.def: New test.
+       * gm2/iso/fail/badparam4.mod: New test.
+
+2024-12-03  Gaius Mulley  <gaiusm...@gmail.com>
+
+       Backported from master:
+       2024-10-19  Gaius Mulley  <gaiusm...@gmail.com>
+
+       PR modula2/115328
+       * gm2/iso/fail/badparam.def: New test.
+       * gm2/iso/fail/badparam.mod: New test.
+       * gm2/iso/fail/badparam2.def: New test.
+       * gm2/iso/fail/badparam2.mod: New test.
+       * gm2/iso/fail/badparam3.def: New test.
+       * gm2/iso/fail/badparam3.mod: New test.
+       * gm2/iso/fail/badparamarray.def: New test.
+       * gm2/iso/fail/badparamarray.mod: New test.
+       * gm2/iso/fail/simpledef1.def: New test.
+       * gm2/iso/fail/simpledef1.mod: New test.
+       * gm2/iso/fail/simpleforward.mod: New test.
+       * gm2/iso/fail/simpleforward2.mod: New test.
+       * gm2/iso/fail/simpleforward3.mod: New test.
+       * gm2/iso/fail/simpleforward4.mod: New test.
+       * gm2/iso/fail/simpleforward5.mod: New test.
+       * gm2/iso/fail/simpleforward7.mod: New test.
+       * gm2/iso/pass/simpleforward.mod: New test.
+       * gm2/iso/pass/simpleforward6.mod: New test.
+
 2024-12-02  Harald Anlauf  <anl...@gmx.de>
 
        Backported from master:

Reply via email to