]> git.sur5r.net Git - cc65/commitdiff
Stopped interrupt dispatcher from being linked even when there are no interruptors. 1/head
authorGreg King <gregdk@users.sourceforge.net>
Mon, 22 Apr 2013 19:55:52 +0000 (15:55 -0400)
committerGreg King <gregdk@users.sourceforge.net>
Mon, 22 Apr 2013 19:55:52 +0000 (15:55 -0400)
Put ld65's CONDES import names into object module's list instead of linker's list.

src/ld65/exports.c

index 90c7bc7b3c1a7f62b4043683eeba2a69f71a2818..8009056e697b0257c2141519a825f8af8b723d51 100644 (file)
@@ -399,20 +399,25 @@ Export* ReadExport (FILE* F, ObjData* O)
      */
     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));
         }
     }