]> git.ipfire.org Git - thirdparty/gcc.git/commit
PR modula2/122499: misspelt procedure in import list causes clutter
authorGaius Mulley <gaiusmod2@gmail.com>
Sun, 2 Nov 2025 21:44:03 +0000 (21:44 +0000)
committerGaius Mulley <gaiusmod2@gmail.com>
Sun, 2 Nov 2025 21:44:03 +0000 (21:44 +0000)
commitd66209cee5dda39ac4add589f4535f35c5736c63
tree1d95745bc18c526834c4e07c46d9c2cecf2f8d30
parentc303f1056dfc2567b2511ee19ae2621c37389be4
PR modula2/122499: misspelt procedure in import list causes clutter

A misspelt ident in an import list causes a sequence of clutted errors.
This bug fix filters unknowns built during import lists.  It also
checks for spelling mistakes against the modules exported identifiers.

gcc/m2/ChangeLog:

PR modula2/122499
* gm2-compiler/M2StackSpell.mod (PushName): Add comment.
(GetSpellHint): Rewrite.
(GetExportedSpellHint): New procedure function.
(GetScopeSpellHint): New procedure function.
* gm2-compiler/P1Build.bnf (IdentScope): Rewrite.
(PossiblyExportIdent): Ditto.
* gm2-compiler/P1SymBuild.mod (BuildImportInnerModule): Add
parameter to AddNameToImportList.
* gm2-compiler/SymbolTable.def (GetUnknownOnImport): New
procedure function.
(GetUnknownDeclScope): Ditto.
(AddNameToScope): Add tok parameter.
(AddNameToImportList): Ditto.
* gm2-compiler/SymbolTable.mod (SymUndefined): New field
declScope.
New field onImport.
(MakeObject): Add tok parameter.
(FillInUnknownFields): Initialize declScope.
Initialize onImport.
(GetUnknownOnImport): New procedure function.
(GetUnknownDeclScope): Ditto.
(AddNameToScope): Pass tok to MakeObject.
(AddNameToImportList): Add tok parameter.
Pass tok to MakeObject.
(GetDeclaredSym): Add parameters to FillInUnknownFields.
(RequestSym): Ditto.
(FetchUnknownFromModule): Ditto.
(FetchUnknownFromDefImp): Ditto.
(FetchUnknownFrom): Ditto.

gcc/testsuite/ChangeLog:

PR modula2/122499
* gm2.dg/spell/iso/fail/badimport2.mod: New test.
* gm2.dg/spell/iso/fail/badimport3.mod: New test.
* gm2.dg/spell/iso/fail/badimport4.mod: New test.

Signed-off-by: Gaius Mulley <gaiusmod2@gmail.com>
gcc/m2/gm2-compiler/M2StackSpell.mod
gcc/m2/gm2-compiler/P1Build.bnf
gcc/m2/gm2-compiler/P1SymBuild.mod
gcc/m2/gm2-compiler/SymbolTable.def
gcc/m2/gm2-compiler/SymbolTable.mod
gcc/testsuite/gm2.dg/spell/iso/fail/badimport2.mod [new file with mode: 0644]
gcc/testsuite/gm2.dg/spell/iso/fail/badimport3.mod [new file with mode: 0644]
gcc/testsuite/gm2.dg/spell/iso/fail/badimport4.mod [new file with mode: 0644]