When the scope is not found on ancestors, create on current scope.

This solves comment https://github.com/cc65/cc65/pull/1358#issuecomment-3193961949
This commit is contained in:
Daniel Serpell
2025-08-16 22:28:32 -04:00
parent 2323f46a54
commit acc26c0e7b
2 changed files with 9 additions and 5 deletions

View File

@@ -94,10 +94,14 @@ SymTable* ParseScopedIdent (StrBuf* Name, StrBuf* FullName)
*/
Scope = SymFindAnyScope (CurrentScope, Name);
if (Scope == 0) {
/* Scope not found */
SB_Terminate (FullName);
Error ("No such scope: `%m%p'", FullName);
return 0;
/* Scope not found, create a new scope here */
Scope = SymFindScope (CurrentScope, Name, SYM_ALLOC_NEW);
if (Scope == 0) {
SB_Terminate (FullName);
/* Scope not found */
Error ("Can't create scope: `%m%p'", FullName);
return 0;
}
}
} else {