*/
for (I = 0; I < CD_TYPE_COUNT; ++I) {
const ConDesImport* CDI;
- if (E->ConDes[I] != CD_PRIO_NONE && (CDI = ConDesGetImport (I)) != 0) {
+ if (E->ConDes[I] != CD_PRIO_NONE && (CDI = ConDesGetImport (I)) != 0) {
unsigned J;
- /* Generate a new import and insert it */
- Import* Imp = InsertImport (GenImport (CDI->Name, CDI->AddrSize));
+ /* Generate a new import, and add it to the module's import list. */
+ Import* Imp = GenImport (CDI->Name, CDI->AddrSize);
+
+ Imp->Obj = O;
+ CollAppend (&O->Imports, Imp);
- /* Add line info for the config file and for the export that is
- * actually the condes that forces the import.
+ /* Add line info for the export that is actually the condes that
+ * forces the import. Then, add line info for the config. file.
+ * The export's info is added first because the import pretends
+ * that it came from the object module instead of the config. file.
*/
- CollAppend (&Imp->RefLines, GenLineInfo (&CDI->Pos));
for (J = 0; J < CollCount (&E->DefLines); ++J) {
CollAppend (&Imp->RefLines, DupLineInfo (CollAt (&E->DefLines, J)));
}
+ CollAppend (&Imp->RefLines, GenLineInfo (&CDI->Pos));
}
}