Explorar o código

* return after a failed call will now add it to ppas

peter %!s(int64=27) %!d(string=hai) anos
pai
achega
efb8aa9904
Modificáronse 2 ficheiros con 13 adicións e 11 borrados
  1. 7 4
      compiler/assemble.pas
  2. 6 7
      compiler/link.pas

+ 7 - 4
compiler/assemble.pas

@@ -159,6 +159,7 @@ end;
 
 Function TAsmList.CallAssembler(const command,para:string):Boolean;
 begin
+  callassembler:=true;
   if not(cs_asm_extern in aktglobalswitches) then
    begin
      swapvectors;
@@ -167,19 +168,18 @@ begin
      if (doserror<>0) then
       begin
         Message(exec_w_cant_call_assembler);
-        aktglobalswitches:=aktglobalswitches+[cs_asm_extern];
-        exit;
+        callassembler:=false;
       end
      else
       if (dosexitcode<>0) then
        begin
         Message(exec_w_error_while_assembling);
+        aktglobalswitches:=aktglobalswitches+[cs_asm_extern];
         callassembler:=false;
        end;
    end;
   if cs_asm_extern in aktglobalswitches then
    AsmRes.AddAsmCommand(command,para,name);
-  callassembler:=true;
 end;
 
 
@@ -452,7 +452,10 @@ end;
 end.
 {
   $Log$
-  Revision 1.14  1998-08-10 14:49:41  peter
+  Revision 1.15  1998-08-14 18:16:09  peter
+    * return after a failed call will now add it to ppas
+
+  Revision 1.14  1998/08/10 14:49:41  peter
     + localswitches, moduleswitches, globalswitches splitting
 
   Revision 1.13  1998/07/14 21:46:40  peter

+ 6 - 7
compiler/link.pas

@@ -254,14 +254,15 @@ begin
      if (dosexitcode<>0) then
       begin
         Message(exec_w_error_while_linking);
+        aktglobalswitches:=aktglobalswitches+[cs_link_extern];
         DoExec:=false;
-        exit;
       end
      else
       if (dosError<>0) then
        begin
          Message(exec_w_cant_call_linker);
          aktglobalswitches:=aktglobalswitches+[cs_link_extern];
+         DoExec:=false;
        end;
    end;
 { Update asmres when externmode is set }
@@ -283,7 +284,6 @@ Var
   found,
   linklibc     : boolean;
 
-
   procedure WriteRes(const s:string);
   begin
     if s<>'' then
@@ -311,7 +311,6 @@ begin
                        if linklibc then
                         prtobj:='cprt0';
                      end;
-
                   end;
 {$endif i386}
 {$ifdef m68k}
@@ -364,7 +363,6 @@ begin
         WriteRes(s2+'crti.o');
         WriteRes(s2+'crtbegin.o');
       end;
-
    end;
 
   while not ObjectFiles.Empty do
@@ -380,10 +378,8 @@ begin
         WriteRes(s2+'crtend.o');
         WriteRes(s2+'crtn.o');
       end;
-
    end;
 
-
   { Write sharedlibraries like -l<lib> }
   While not SharedLibFiles.Empty do
    begin
@@ -518,7 +514,10 @@ end;
 end.
 {
   $Log$
-  Revision 1.16  1998-08-12 19:28:15  peter
+  Revision 1.17  1998-08-14 18:16:08  peter
+    * return after a failed call will now add it to ppas
+
+  Revision 1.16  1998/08/12 19:28:15  peter
     * better libc support
 
   Revision 1.15  1998/08/10 14:50:02  peter