mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-17 07:19:14 +02:00
Fix errors and improve ouput of ppudump
git-svn-id: trunk@29577 -
This commit is contained in:
parent
c5de263637
commit
d939a163f7
@ -289,8 +289,32 @@ const
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
const has_errors : boolean = false;
|
const has_errors : boolean = false;
|
||||||
|
has_warnings : boolean = false;
|
||||||
has_more_infos : boolean = false;
|
has_more_infos : boolean = false;
|
||||||
|
|
||||||
|
procedure SetHasErrors;
|
||||||
|
begin
|
||||||
|
has_errors:=true;
|
||||||
|
end;
|
||||||
|
|
||||||
|
Procedure WriteError(const S : string);
|
||||||
|
Begin
|
||||||
|
system.Writeln(StdErr, S);
|
||||||
|
SetHasErrors;
|
||||||
|
End;
|
||||||
|
|
||||||
|
Procedure WriteWarning(const S : string);
|
||||||
|
var
|
||||||
|
ss: string;
|
||||||
|
Begin
|
||||||
|
ss:='!! Warning: ' + S;
|
||||||
|
if nostdout then
|
||||||
|
system.Writeln(StdErr, ss)
|
||||||
|
else
|
||||||
|
system.Writeln(ss);
|
||||||
|
has_warnings:=true;
|
||||||
|
End;
|
||||||
|
|
||||||
procedure Write(const s: string);
|
procedure Write(const s: string);
|
||||||
begin
|
begin
|
||||||
if nostdout then exit;
|
if nostdout then exit;
|
||||||
@ -300,20 +324,84 @@ end;
|
|||||||
procedure Write(const params: array of const);
|
procedure Write(const params: array of const);
|
||||||
var
|
var
|
||||||
i: integer;
|
i: integer;
|
||||||
|
{ Last vtType define in rtl/inc/objpash.inc }
|
||||||
|
const
|
||||||
|
max_vttype = vtUnicodeString;
|
||||||
begin
|
begin
|
||||||
if nostdout then exit;
|
if nostdout then exit;
|
||||||
for i:=Low(params) to High(params) do
|
for i:=Low(params) to High(params) do
|
||||||
|
{ All vtType in
|
||||||
|
vtInteger = 0;
|
||||||
|
vtBoolean = 1;
|
||||||
|
vtChar = 2;
|
||||||
|
vtExtended = 3;
|
||||||
|
vtString = 4;
|
||||||
|
vtPointer = 5;
|
||||||
|
vtPChar = 6;
|
||||||
|
vtObject = 7;
|
||||||
|
vtClass = 8;
|
||||||
|
vtWideChar = 9;
|
||||||
|
vtPWideChar = 10;
|
||||||
|
vtAnsiString32 = 11; called vtAnsiString in objpas unit
|
||||||
|
vtCurrency = 12;
|
||||||
|
vtVariant = 13;
|
||||||
|
vtInterface = 14;
|
||||||
|
vtWideString = 15;
|
||||||
|
vtInt64 = 16;
|
||||||
|
vtQWord = 17;
|
||||||
|
vtUnicodeString = 18;
|
||||||
|
// vtAnsiString16 = 19; not yet used
|
||||||
|
// vtAnsiString64 = 20; not yet used
|
||||||
|
}
|
||||||
with TVarRec(params[i]) do
|
with TVarRec(params[i]) do
|
||||||
case VType of
|
case VType of
|
||||||
vtInteger: system.write(VInteger);
|
vtInteger: system.write(VInteger);
|
||||||
|
vtBoolean: system.write(VBoolean);
|
||||||
|
vtChar: system.write(VChar);
|
||||||
|
vtExtended: system.write(VExtended^);
|
||||||
|
vtString: system.write(VString^);
|
||||||
|
vtPointer:
|
||||||
|
begin
|
||||||
|
{ Not sure the display will be correct
|
||||||
|
if sizeof pointer is not native }
|
||||||
|
WriteWarning('Pointer constant');
|
||||||
|
end;
|
||||||
|
vtPChar: system.write(VPChar);
|
||||||
|
vtObject:
|
||||||
|
begin
|
||||||
|
{ Not sure the display will be correct
|
||||||
|
if sizeof pointer is not native }
|
||||||
|
WriteWarning('Object constant');
|
||||||
|
end;
|
||||||
|
vtClass:
|
||||||
|
begin
|
||||||
|
{ Not sure the display will be correct
|
||||||
|
if sizeof pointer is not native }
|
||||||
|
WriteWarning('Class constant');
|
||||||
|
end;
|
||||||
|
vtWideChar: system.write(VWideChar);
|
||||||
|
vtPWideChar:
|
||||||
|
begin
|
||||||
|
WriteWarning('PWideChar constant');
|
||||||
|
end;
|
||||||
|
vtAnsiString: system.write(ansistring(VAnsiString));
|
||||||
|
vtCurrency : system.write(VCurrency^);
|
||||||
|
vtVariant :
|
||||||
|
begin
|
||||||
|
{ Not sure the display will be correct
|
||||||
|
if sizeof pointer is not native }
|
||||||
|
WriteWarning('Variant constant');
|
||||||
|
end;
|
||||||
|
vtInterface :
|
||||||
|
begin
|
||||||
|
{ Not sure the display will be correct
|
||||||
|
if sizeof pointer is not native }
|
||||||
|
WriteWarning('Interface constant');
|
||||||
|
end;
|
||||||
|
vtWideString : system.write(widestring(VWideString));
|
||||||
vtInt64: system.write(VInt64^);
|
vtInt64: system.write(VInt64^);
|
||||||
vtQWord: system.write(VQWord^);
|
vtQWord: system.write(VQWord^);
|
||||||
vtString: system.write(VString^);
|
vtUnicodeString : system.write(unicodestring(VUnicodeString));
|
||||||
vtAnsiString: system.write(ansistring(VAnsiString));
|
|
||||||
vtPChar: system.write(VPChar);
|
|
||||||
vtChar: system.write(VChar);
|
|
||||||
vtBoolean: system.write(VBoolean);
|
|
||||||
vtExtended: system.write(VExtended^);
|
|
||||||
else
|
else
|
||||||
begin
|
begin
|
||||||
system.writeln;
|
system.writeln;
|
||||||
@ -342,28 +430,6 @@ begin
|
|||||||
has_more_infos:=true;
|
has_more_infos:=true;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure SetHasErrors;
|
|
||||||
begin
|
|
||||||
has_errors:=true;
|
|
||||||
end;
|
|
||||||
|
|
||||||
Procedure WriteError(const S : string);
|
|
||||||
Begin
|
|
||||||
system.Writeln(StdErr, S);
|
|
||||||
SetHasErrors;
|
|
||||||
End;
|
|
||||||
|
|
||||||
Procedure WriteWarning(const S : string);
|
|
||||||
var
|
|
||||||
ss: string;
|
|
||||||
Begin
|
|
||||||
ss:='!! Warning: ' + S;
|
|
||||||
if nostdout then
|
|
||||||
system.Writeln(StdErr, ss)
|
|
||||||
else
|
|
||||||
system.Writeln(ss);
|
|
||||||
End;
|
|
||||||
|
|
||||||
function Unknown(const st : string; val :longint) : string;
|
function Unknown(const st : string; val :longint) : string;
|
||||||
Begin
|
Begin
|
||||||
Unknown:='<!! Unknown'+st+' value '+tostr(val)+'>';
|
Unknown:='<!! Unknown'+st+' value '+tostr(val)+'>';
|
||||||
@ -2548,9 +2614,8 @@ begin
|
|||||||
ibmacrosym :
|
ibmacrosym :
|
||||||
begin
|
begin
|
||||||
readcommonsym('Macro symbol ');
|
readcommonsym('Macro symbol ');
|
||||||
writeln([space,' Name: ',getstring]);
|
writeln([space,' Defined: ',boolean(getbyte)]);
|
||||||
writeln([space,' Defined: ',getbyte]);
|
writeln([space,' Compiler var: ',boolean(getbyte)]);
|
||||||
writeln([space,' Compiler var: ',getbyte]);
|
|
||||||
len:=getlongint;
|
len:=getlongint;
|
||||||
writeln([space,' Value length: ',len]);
|
writeln([space,' Value length: ',len]);
|
||||||
if len > 0 then
|
if len > 0 then
|
||||||
@ -3793,7 +3858,8 @@ begin
|
|||||||
end;
|
end;
|
||||||
if has_errors then
|
if has_errors then
|
||||||
Halt(1);
|
Halt(1);
|
||||||
if error_on_more and has_more_infos then
|
if error_on_more and
|
||||||
|
(has_more_infos or has_warnings) then
|
||||||
Halt(2);
|
Halt(2);
|
||||||
end.
|
end.
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user