From a2f0e54dc6471029ad268c257b234388bfaa30bd Mon Sep 17 00:00:00 2001 From: sergei Date: Mon, 18 Jun 2012 17:03:35 +0000 Subject: [PATCH] * Fixed internal linker entering infinite loop if script contains empty lines or comments. git-svn-id: trunk@21650 - --- compiler/link.pas | 27 ++++++++++++++++++--------- 1 file changed, 18 insertions(+), 9 deletions(-) diff --git a/compiler/link.pas b/compiler/link.pas index bb3acd9d94..1a77329edd 100644 --- a/compiler/link.pas +++ b/compiler/link.pas @@ -531,15 +531,11 @@ Implementation end; - procedure AddImportSymbol(const libname,symname,symmangledname:TCmdStr;OrdNr: longint;isvar:boolean); - begin - end; - - procedure TLinker.InitSysInitUnitName; begin end; + function TLinker.MakeExecutable:boolean; begin MakeExecutable:=false; @@ -951,7 +947,10 @@ Implementation inc(i); s:=hp.str; if (s='') or (s[1]='#') then - continue; + begin + hp:=TCmdStrListItem(hp.next); + continue; + end; keyword:=Upper(GetToken(s,' ')); para:=GetToken(s,' '); if Trim(s)<>'' then @@ -1037,6 +1036,7 @@ Implementation if (s='') or (s[1]='#') then begin IsHandled^[i]:=true; + hp:=TCmdStrListItem(hp.next); continue; end; handled:=true; @@ -1084,7 +1084,10 @@ Implementation inc(i); s:=hp.str; if (s='') or (s[1]='#') then - continue; + begin + hp:=TCmdStrListItem(hp.next); + continue; + end; handled:=true; keyword:=Upper(GetToken(s,' ')); para:=ParsePara(GetToken(s,' ')); @@ -1136,7 +1139,10 @@ Implementation inc(i); s:=hp.str; if (s='') or (s[1]='#') then - continue; + begin + hp:=TCmdStrListItem(hp.next); + continue; + end; handled:=true; keyword:=Upper(GetToken(s,' ')); para:=ParsePara(GetToken(s,' ')); @@ -1172,7 +1178,10 @@ Implementation inc(i); s:=hp.str; if (s='') or (s[1]='#') then - continue; + begin + hp:=TCmdStrListItem(hp.next); + continue; + end; handled:=true; keyword:=Upper(GetToken(s,' ')); para:=ParsePara(GetToken(s,' '));