From 4cf4c65502768ccc1fcaf96dc93779f0da68a87d Mon Sep 17 00:00:00 2001 From: florian Date: Thu, 22 Mar 2012 21:04:16 +0000 Subject: [PATCH] * write the file location (if available), if a unit is not found, resolves #21514 git-svn-id: trunk@20583 - --- compiler/fppu.pas | 15 ++++++++++++++- compiler/pmodules.pas | 3 +++ 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/compiler/fppu.pas b/compiler/fppu.pas index d75bca19c9..2f2f1d67a5 100644 --- a/compiler/fppu.pas +++ b/compiler/fppu.pas @@ -1484,6 +1484,7 @@ var do_load, second_time : boolean; old_current_module : tmodule; + pu : tused_unit; begin old_current_module:=current_module; Message3(unit_u_load_unit,old_current_module.modulename^, @@ -1620,7 +1621,19 @@ var begin printcomments; if recompile_reason=rr_noppu then - Message2(unit_f_cant_find_ppu,realmodulename^,loaded_from.realmodulename^) + begin + pu:=tused_unit(loaded_from.used_units.first); + while assigned(pu) do + begin + if pu.u=self then + break; + pu:=tused_unit(pu.next); + end; + if assigned(pu) then + MessagePos2(pu.unitsym.fileinfo,unit_f_cant_find_ppu,realmodulename^,loaded_from.realmodulename^) + else + Message2(unit_f_cant_find_ppu,realmodulename^,loaded_from.realmodulename^); + end else Message1(unit_f_cant_compile_unit,realmodulename^); end; diff --git a/compiler/pmodules.pas b/compiler/pmodules.pas index 95defabe96..18459915ea 100644 --- a/compiler/pmodules.pas +++ b/compiler/pmodules.pas @@ -761,11 +761,13 @@ implementation pu : tused_unit; hp2 : tmodule; unitsym : tunitsym; + filepos : tfileposinfo; begin consume(_USES); repeat s:=pattern; sorg:=orgpattern; + filepos:=current_tokenpos; consume(_ID); while token=_POINT do begin @@ -811,6 +813,7 @@ implementation { Create unitsym, we need to use the name as specified, we can not use the modulename because that can be different when -Un is used } + current_tokenpos:=filepos; unitsym:=tunitsym.create(sorg,nil); tabstractunitsymtable(current_module.localsymtable).insertunit(unitsym); { the current module uses the unit hp2 }