More work on high level language debug symbols. They are now passed correctly

via the object files to the linker and written to the debug info file.


git-svn-id: svn://svn.cc65.org/cc65/trunk@5285 b7a2c559-68d2-44c3-8de9-860c34a00d81
This commit is contained in:
uz
2011-08-30 11:42:26 +00:00
parent 2f82cb4fb8
commit aaa21c6417
16 changed files with 339 additions and 45 deletions

View File

@@ -419,15 +419,22 @@ SymEntry* SymFindAny (SymTable* Scope, const StrBuf* Name)
{
SymEntry* Sym;
do {
/* Search in the current table */
Sym = SymFind (Scope, Name, SYM_FIND_EXISTING);
if (Sym) {
/* Found, return it */
break;
}
/* Search in the current table. Ignore entries flagged with SF_UNUSED,
* because for such symbols there is a real entry in one of the parent
* scopes.
*/
Sym = SymFind (Scope, Name, SYM_FIND_EXISTING);
if (Sym) {
if (Sym->Flags & SF_UNUSED) {
Sym = 0;
} else {
/* Found, return it */
break;
}
}
/* Not found, search in the parent scope, if we have one */
Scope = Scope->Parent;
Scope = Scope->Parent;
} while (Sym == 0 && Scope != 0);