mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-18 08:09:28 +02:00
* Check for internal errors
This commit is contained in:
parent
280878b8a5
commit
7020d68165
@ -407,6 +407,32 @@ begin
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
function ExitWithInternalError(const OutName:string):boolean;
|
||||||
|
var
|
||||||
|
t : text;
|
||||||
|
s : string;
|
||||||
|
begin
|
||||||
|
ExitWithInternalError:=false;
|
||||||
|
{ open logfile }
|
||||||
|
assign(t,Outname);
|
||||||
|
{$I-}
|
||||||
|
reset(t);
|
||||||
|
{$I+}
|
||||||
|
if ioresult<>0 then
|
||||||
|
exit;
|
||||||
|
while not eof(t) do
|
||||||
|
begin
|
||||||
|
readln(t,s);
|
||||||
|
if pos('Fatal: Internal error ',s)>0 then
|
||||||
|
begin
|
||||||
|
ExitWithInternalError:=true;
|
||||||
|
break;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
close(t);
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
function RunCompiler:boolean;
|
function RunCompiler:boolean;
|
||||||
var
|
var
|
||||||
outname,
|
outname,
|
||||||
@ -422,6 +448,25 @@ begin
|
|||||||
{ also get the output from as and ld that writes to stderr sometimes }
|
{ also get the output from as and ld that writes to stderr sometimes }
|
||||||
ExecuteRedir(CompilerBin,args,'',OutName,OutName);
|
ExecuteRedir(CompilerBin,args,'',OutName,OutName);
|
||||||
Verbose(V_Debug,'Exitcode '+ToStr(ExecuteResult));
|
Verbose(V_Debug,'Exitcode '+ToStr(ExecuteResult));
|
||||||
|
|
||||||
|
{ Check for internal error }
|
||||||
|
if ExitWithInternalError(OutName) then
|
||||||
|
begin
|
||||||
|
AddLog(FailLogFile,TestName);
|
||||||
|
if Note<>'' then
|
||||||
|
AddLog(FailLogFile,Note);
|
||||||
|
AddLog(ResLogFile,'Failed to compile '+PPFileInfo);
|
||||||
|
AddLog(LongLogFile,'>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>');
|
||||||
|
AddLog(LongLogFile,'Failed to compile '+PPFileInfo);
|
||||||
|
if Note<>'' then
|
||||||
|
AddLog(LongLogFile,Note);
|
||||||
|
CopyFile(OutName,LongLogFile,true);
|
||||||
|
{ avoid to try again }
|
||||||
|
AddLog(ForceExtension(PPFile,'elg'),'Failed to compile '++PPFileInfo);
|
||||||
|
Verbose(V_Abort,'Internal error in compiler');
|
||||||
|
exit;
|
||||||
|
end;
|
||||||
|
|
||||||
{ Shoud the compile fail ? }
|
{ Shoud the compile fail ? }
|
||||||
if Config.ShouldFail then
|
if Config.ShouldFail then
|
||||||
begin
|
begin
|
||||||
@ -685,7 +730,10 @@ begin
|
|||||||
end.
|
end.
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.13 2002-03-03 13:27:28 hajny
|
Revision 1.14 2002-04-21 18:15:32 peter
|
||||||
|
* Check for internal errors
|
||||||
|
|
||||||
|
Revision 1.13 2002/03/03 13:27:28 hajny
|
||||||
+ added support for OS/2 units (.ppo)
|
+ added support for OS/2 units (.ppo)
|
||||||
|
|
||||||
Revision 1.12 2002/01/29 13:24:16 pierre
|
Revision 1.12 2002/01/29 13:24:16 pierre
|
||||||
|
Loading…
Reference in New Issue
Block a user