Fix -VD or -VS by partially reading Interface information

git-svn-id: trunk@31797 -
This commit is contained in:
pierre 2015-09-23 16:34:02 +00:00
parent 2e2ac5c7ee
commit 3123d823a1

View File

@ -3440,7 +3440,7 @@ end;
Read General Part Read General Part
****************************************************************************} ****************************************************************************}
procedure readinterface; procedure readinterface(silent : boolean);
var var
b : byte; b : byte;
sourcenumber, i : longint; sourcenumber, i : longint;
@ -3454,76 +3454,90 @@ begin
ibmodulename : ibmodulename :
begin begin
CurUnit.Name:=getstring; CurUnit.Name:=getstring;
Writeln(['Module Name: ',CurUnit.Name]); if not silent then
Writeln(['Module Name: ',CurUnit.Name]);
end; end;
ibmoduleoptions: ibmoduleoptions:
readmoduleoptions(' '); if not silent then
readmoduleoptions(' ');
ibsourcefiles : ibsourcefiles :
begin begin
sourcenumber:=1; sourcenumber:=1;
while not EndOfEntry do if not silent then
begin while not EndOfEntry do
with TPpuSrcFile.Create(CurUnit.SourceFiles) do begin begin
Name:=getstring; with TPpuSrcFile.Create(CurUnit.SourceFiles) do begin
i:=getlongint; Name:=getstring;
if i >= 0 then i:=getlongint;
FileTime:=FileDateToDateTime(i); if i >= 0 then
Writeln(['Source file ',sourcenumber,' : ',Name,' ',filetimestring(i)]); FileTime:=FileDateToDateTime(i);
end; Writeln(['Source file ',sourcenumber,' : ',Name,' ',filetimestring(i)]);
end;
inc(sourcenumber); inc(sourcenumber);
end; end;
end; end;
{$IFDEF MACRO_DIFF_HINT} {$IFDEF MACRO_DIFF_HINT}
ibusedmacros : ibusedmacros :
begin begin
while not EndOfEntry do if not silent then
begin while not EndOfEntry do
Write('Conditional ',getstring); begin
b:=getbyte; Write('Conditional ',getstring);
if boolean(b)=true then b:=getbyte;
write(' defined at startup') if boolean(b)=true then
else write(' defined at startup')
write(' not defined at startup'); else
b:=getbyte; write(' not defined at startup');
if boolean(b)=true then b:=getbyte;
writeln(' was used') if boolean(b)=true then
else writeln(' was used')
writeln; else
end; writeln;
end; end;
end;
{$ENDIF} {$ENDIF}
ibloadunit : ibloadunit :
ReadLoadUnit; if not silent then
ReadLoadUnit;
iblinkunitofiles : iblinkunitofiles :
ReadLinkContainer('Link unit object file: '); if not silent then
ReadLinkContainer('Link unit object file: ');
iblinkunitstaticlibs : iblinkunitstaticlibs :
ReadLinkContainer('Link unit static lib: '); if not silent then
ReadLinkContainer('Link unit static lib: ');
iblinkunitsharedlibs : iblinkunitsharedlibs :
ReadLinkContainer('Link unit shared lib: '); if not silent then
ReadLinkContainer('Link unit shared lib: ');
iblinkotherofiles : iblinkotherofiles :
ReadLinkContainer('Link other object file: '); if not silent then
ReadLinkContainer('Link other object file: ');
iblinkotherstaticlibs : iblinkotherstaticlibs :
ReadLinkContainer('Link other static lib: '); if not silent then
ReadLinkContainer('Link other static lib: ');
iblinkothersharedlibs : iblinkothersharedlibs :
ReadLinkContainer('Link other shared lib: '); if not silent then
ReadLinkContainer('Link other shared lib: ');
iblinkotherframeworks: iblinkotherframeworks:
ReadLinkContainer('Link framework: '); if not silent then
ReadLinkContainer('Link framework: ');
ibmainname: ibmainname:
Writeln(['Specified main program symbol name: ',getstring]); if not silent then
Writeln(['Specified main program symbol name: ',getstring]);
ibImportSymbols : ibImportSymbols :
ReadImportSymbols; if not silent then
ReadImportSymbols;
ibderefdata : ibderefdata :
ReadDerefData; ReadDerefData;
@ -3532,10 +3546,12 @@ begin
ReadDerefMap; ReadDerefMap;
ibwpofile : ibwpofile :
ReadWpoFileInfo; if not silent then
ReadWpoFileInfo;
ibresources : ibresources :
ReadLinkContainer('Resource file: '); if not silent then
ReadLinkContainer('Resource file: ');
iberror : iberror :
begin begin
@ -3668,8 +3684,11 @@ begin
Writeln; Writeln;
Writeln('Interface section'); Writeln('Interface section');
Writeln('------------------'); Writeln('------------------');
readinterface; readinterface(false);
end end
{ We need derefdata from Interface }
else if verbose and (v_defs or v_syms or v_implementation)<>0 then
readinterface(true)
else else
ppufile.skipuntilentry(ibendinterface); ppufile.skipuntilentry(ibendinterface);
Writeln; Writeln;