mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-10-24 00:51:42 +02:00
* fixed DFA warnings for JVM target
git-svn-id: trunk@28503 -
This commit is contained in:
parent
d22dc68fda
commit
b13ef4e3bb
@ -526,6 +526,8 @@ implementation
|
||||
i: longint;
|
||||
toplevelowner: tsymtable;
|
||||
begin
|
||||
superclass:=nil;
|
||||
|
||||
{ JVM 1.5+ }
|
||||
AsmWriteLn('.bytecode 49.0');
|
||||
// include files are not support by Java, and the directory of the main
|
||||
@ -763,6 +765,8 @@ implementation
|
||||
2:result:=tostr(smallint(csym.value.valueord.svalue));
|
||||
4:result:=tostr(longint(csym.value.valueord.svalue));
|
||||
8:result:=tostr(csym.value.valueord.svalue);
|
||||
else
|
||||
internalerror(2014082050);
|
||||
end;
|
||||
conststring:
|
||||
result:=constastr(pchar(csym.value.valueptr),csym.value.len);
|
||||
|
@ -340,6 +340,12 @@ implementation
|
||||
reasonbuf,
|
||||
exceptreg: tregister;
|
||||
begin
|
||||
oldBreakLabel:=nil;
|
||||
oldContinueLabel:=nil;
|
||||
finallycodecopy:=nil;
|
||||
continuefinallylabel:=nil;
|
||||
breakfinallylabel:=nil;
|
||||
|
||||
{ not necessary on a garbage-collected platform }
|
||||
if implicitframe then
|
||||
internalerror(2011031803);
|
||||
|
@ -87,13 +87,13 @@ implementation
|
||||
|
||||
function tjvminlinenode.typecheck_length(var handled: boolean): tnode;
|
||||
begin
|
||||
result:=nil;
|
||||
typecheckpass(left);
|
||||
if is_open_array(left.resultdef) or
|
||||
is_dynamic_array(left.resultdef) or
|
||||
is_array_of_const(left.resultdef) then
|
||||
begin
|
||||
resultdef:=s32inttype;
|
||||
result:=nil;
|
||||
handled:=true;
|
||||
end;
|
||||
end;
|
||||
@ -101,6 +101,7 @@ implementation
|
||||
|
||||
function tjvminlinenode.typecheck_high(var handled: boolean): tnode;
|
||||
begin
|
||||
result:=nil;
|
||||
typecheckpass(left);
|
||||
if is_dynamic_array(left.resultdef) or
|
||||
is_open_array(left.resultdef) or
|
||||
@ -120,6 +121,7 @@ implementation
|
||||
para: tcallparanode;
|
||||
elemdef: tdef;
|
||||
begin
|
||||
result:=nil;
|
||||
{ normally never exists; used by the JVM backend to create new
|
||||
arrays because it requires special opcodes }
|
||||
tcallparanode(left).get_paratype;
|
||||
@ -150,7 +152,6 @@ implementation
|
||||
para:=tcallparanode(para.right);
|
||||
elemdef:=tarraydef(elemdef).elementdef;
|
||||
end;
|
||||
result:=nil;
|
||||
resultdef:=left.resultdef;
|
||||
handled:=true;
|
||||
end;
|
||||
@ -289,6 +290,7 @@ implementation
|
||||
var
|
||||
handled: boolean;
|
||||
begin
|
||||
result:=nil;
|
||||
handled:=false;
|
||||
case inlinenumber of
|
||||
in_length_x:
|
||||
|
@ -361,6 +361,8 @@ implementation
|
||||
newsize: tcgsize;
|
||||
isjump: boolean;
|
||||
begin
|
||||
otl:=nil;
|
||||
ofl:=nil;
|
||||
if left.resultdef.typ=stringdef then
|
||||
internalerror(2011052702);
|
||||
|
||||
|
@ -75,6 +75,9 @@ implementation
|
||||
paras: tcallparanode;
|
||||
proc: string;
|
||||
begin
|
||||
result:=nil;
|
||||
proc:='';
|
||||
temp:=nil;
|
||||
if not assigned(p.resultdef) then
|
||||
typecheckpass(p);
|
||||
if ((p.resultdef.typ=stringdef) and
|
||||
|
@ -145,8 +145,8 @@ unit tgcpu;
|
||||
if tprocsym(sym).procdeflist.Count<>1 then
|
||||
internalerror(2011062801);
|
||||
pd:=tprocdef(tprocsym(sym).procdeflist[0]);
|
||||
end;
|
||||
hlcg.a_call_name(list,pd,pd.mangledname,nil,false);
|
||||
end;
|
||||
{ static calls method replaces parameter with set instance
|
||||
-> no change in stack height }
|
||||
end
|
||||
@ -202,8 +202,8 @@ unit tgcpu;
|
||||
if tprocsym(sym).procdeflist.Count<>1 then
|
||||
internalerror(2011052404);
|
||||
pd:=tprocdef(tprocsym(sym).procdeflist[0]);
|
||||
end;
|
||||
hlcg.a_call_name(list,pd,pd.mangledname,nil,false);
|
||||
end;
|
||||
{ static calls method replaces parameter with string instance
|
||||
-> no change in stack height }
|
||||
{ store reference to instance }
|
||||
|
Loading…
Reference in New Issue
Block a user