Browse Source

* Emit better error when not able to load auto units

Michaël Van Canneyt 1 year ago
parent
commit
a04d2b59f6
1 changed files with 5 additions and 1 deletions
  1. 5 1
      compiler/pmodules.pas

+ 5 - 1
compiler/pmodules.pas

@@ -200,8 +200,10 @@ implementation
         if not load_ok then
         if not load_ok then
           { We must schedule a compile. }
           { We must schedule a compile. }
           task_handler.addmodule(hp);
           task_handler.addmodule(hp);
+
         { add to symtable stack }
         { add to symtable stack }
-        symtablestack.push(hp.globalsymtable);
+        if assigned(hp.globalsymtable) then
+          symtablestack.push(hp.globalsymtable);
         if (m_mac in current_settings.modeswitches) and
         if (m_mac in current_settings.modeswitches) and
             assigned(hp.globalmacrosymtable) then
             assigned(hp.globalmacrosymtable) then
            macrosymtablestack.push(hp.globalmacrosymtable);
            macrosymtablestack.push(hp.globalmacrosymtable);
@@ -383,6 +385,8 @@ implementation
         begin
         begin
           m:=AddUnit(curr,s,true);
           m:=AddUnit(curr,s,true);
           OK:=assigned(m) and (m.state in [ms_processed,ms_compiled]);
           OK:=assigned(m) and (m.state in [ms_processed,ms_compiled]);
+          if not ok then
+            Message2(unit_f_cant_find_ppu,s,curr.realmodulename^);
           Result:=ok and Result;
           Result:=ok and Result;
         end;
         end;