More changes to account for modules without debug info.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5204 b7a2c559-68d2-44c3-8de9-860c34a00d81
This commit is contained in:
@@ -1254,8 +1254,12 @@ static void CopyModInfo (cc65_moduledata* D, const ModInfo* M)
|
||||
D->library_id = M->Lib.Info->Id;
|
||||
} else {
|
||||
D->library_id = CC65_INV_ID;
|
||||
}
|
||||
if (M->MainScope) {
|
||||
D->scope_id = M->MainScope->Id;
|
||||
} else {
|
||||
D->scope_id = CC65_INV_ID;
|
||||
}
|
||||
D->scope_id = M->MainScope->Id;
|
||||
}
|
||||
|
||||
|
||||
@@ -4313,14 +4317,20 @@ static void ProcessScopeInfo (InputData* D)
|
||||
}
|
||||
}
|
||||
|
||||
/* Walk over all modules, check that eacxh one has a main scope assigned,
|
||||
* then sort the scopes by name
|
||||
/* Walk over all modules. If a module doesn't have scopes, it wasn't
|
||||
* compiled with debug info which is ok. If it has debug info, it must
|
||||
* also have a main scope. If there are scopes, sort them by name.
|
||||
*/
|
||||
for (I = 0; I < CollCount (&D->Info->ModInfoById); ++I) {
|
||||
|
||||
/* Get this module */
|
||||
ModInfo* M = CollAt (&D->Info->ModInfoById, I);
|
||||
|
||||
/* Ignore modules without any scopes (no debug info) */
|
||||
if (CollCount (&M->ScopeInfoByName) == 0) {
|
||||
continue;
|
||||
}
|
||||
|
||||
/* Must have a main scope */
|
||||
if (M->MainScope == 0) {
|
||||
ParseError (D,
|
||||
|
||||
Reference in New Issue
Block a user