mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-04-19 21:19:31 +02:00
* enable intercepting passes on tinlinenode(in_new_x); these cannot be
generated from Pascal source code, but they will be generated by the JVM backend to construct new array instances git-svn-id: branches/jvmbackend@18374 -
This commit is contained in:
parent
e56ad62f09
commit
f47689a5fe
@ -57,6 +57,7 @@ interface
|
||||
procedure second_rox; virtual;
|
||||
procedure second_sar; virtual;
|
||||
procedure second_bsfbsr; virtual;
|
||||
procedure second_new; virtual;
|
||||
end;
|
||||
|
||||
implementation
|
||||
@ -173,6 +174,8 @@ implementation
|
||||
in_bsf_x,
|
||||
in_bsr_x:
|
||||
second_BsfBsr;
|
||||
in_new_x:
|
||||
second_new;
|
||||
else internalerror(9);
|
||||
end;
|
||||
end;
|
||||
@ -827,6 +830,12 @@ implementation
|
||||
end;
|
||||
|
||||
|
||||
procedure tcginlinenode.second_new;
|
||||
begin
|
||||
internalerror(2011012202);
|
||||
end;
|
||||
|
||||
|
||||
begin
|
||||
cinlinenode:=tcginlinenode;
|
||||
end.
|
||||
|
@ -66,6 +66,10 @@ interface
|
||||
function first_int_real: tnode; virtual;
|
||||
function first_abs_long: tnode; virtual;
|
||||
function first_setlength: tnode; virtual;
|
||||
{ This one by default generates an internal error, because such
|
||||
nodes are not generated by the parser. It's however used internally
|
||||
by the JVM backend to create new dynamic arrays. }
|
||||
function first_new: tnode; virtual;
|
||||
private
|
||||
function handle_str: tnode;
|
||||
function handle_reset_rewrite_typed: tnode;
|
||||
@ -3215,6 +3219,8 @@ implementation
|
||||
in_bsf_x,
|
||||
in_bsr_x:
|
||||
expectloc:=LOC_REGISTER;
|
||||
in_new_x:
|
||||
result:=first_new;
|
||||
else
|
||||
internalerror(89);
|
||||
end;
|
||||
@ -3416,6 +3422,12 @@ implementation
|
||||
result:=newblock;
|
||||
end;
|
||||
|
||||
function tinlinenode.first_new: tnode;
|
||||
begin
|
||||
internalerror(2011012201);
|
||||
result:=nil;
|
||||
end;
|
||||
|
||||
function tinlinenode.first_pack_unpack: tnode;
|
||||
var
|
||||
loopstatement : tstatementnode;
|
||||
|
Loading…
Reference in New Issue
Block a user