summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authornickysn <nickysn@3ad0048d-3df7-0310-abae-a5850022a9f2>2018-04-03 16:41:01 +0000
committernickysn <nickysn@3ad0048d-3df7-0310-abae-a5850022a9f2>2018-04-03 16:41:01 +0000
commit29e86b9b7b58765435cc773a73000c691a3c2b07 (patch)
tree0b52298b1361dc4da6c4e4d95b140dfe87ce50f2
parent0d1eaa9aee779c0ebe76176424681c150ec475f4 (diff)
downloadfpc-29e86b9b7b58765435cc773a73000c691a3c2b07.tar.gz
* moved nf_typedaddr to addrnodeflags (anf_typedaddr)
git-svn-id: https://svn.freepascal.org/svn/fpc/trunk@38671 3ad0048d-3df7-0310-abae-a5850022a9f2
-rw-r--r--compiler/i386/n386mem.pas2
-rw-r--r--compiler/i8086/n8086mem.pas2
-rw-r--r--compiler/jvm/njvmadd.pas6
-rw-r--r--compiler/jvm/njvmcal.pas4
-rw-r--r--compiler/jvm/njvmcnv.pas2
-rw-r--r--compiler/jvm/njvminl.pas2
-rw-r--r--compiler/jvm/njvmld.pas2
-rw-r--r--compiler/jvm/njvmmem.pas2
-rw-r--r--compiler/jvm/njvmset.pas2
-rw-r--r--compiler/jvm/njvmutil.pas2
-rw-r--r--compiler/ncal.pas2
-rw-r--r--compiler/ncgnstld.pas2
-rw-r--r--compiler/ncgnstmm.pas2
-rw-r--r--compiler/ncnv.pas2
-rw-r--r--compiler/nmem.pas10
-rw-r--r--compiler/node.pas5
-rw-r--r--compiler/nopt.pas2
-rw-r--r--compiler/pexpr.pas2
-rw-r--r--compiler/pstatmnt.pas2
-rw-r--r--compiler/symcreat.pas2
20 files changed, 28 insertions, 29 deletions
diff --git a/compiler/i386/n386mem.pas b/compiler/i386/n386mem.pas
index 04e6e99063..6cc8b825e4 100644
--- a/compiler/i386/n386mem.pas
+++ b/compiler/i386/n386mem.pas
@@ -58,7 +58,7 @@ implementation
procedure ti386addrnode.set_absvarsym_resultdef;
begin
- if not(nf_typedaddr in flags) then
+ if not(anf_typedaddr in addrnodeflags) then
resultdef:=voidnearfspointertype
else
resultdef:=tcpupointerdefclass(cpointerdef).createx86(left.resultdef,x86pt_near_fs);
diff --git a/compiler/i8086/n8086mem.pas b/compiler/i8086/n8086mem.pas
index 61bbe1166c..98441abc03 100644
--- a/compiler/i8086/n8086mem.pas
+++ b/compiler/i8086/n8086mem.pas
@@ -70,7 +70,7 @@ implementation
procedure ti8086addrnode.set_absvarsym_resultdef;
begin
- if not(nf_typedaddr in flags) then
+ if not(anf_typedaddr in addrnodeflags) then
resultdef:=voidfarpointertype
else
resultdef:=tcpupointerdefclass(cpointerdef).createx86(left.resultdef,x86pt_far);
diff --git a/compiler/jvm/njvmadd.pas b/compiler/jvm/njvmadd.pas
index 15fc58bfe6..da5fd86001 100644
--- a/compiler/jvm/njvmadd.pas
+++ b/compiler/jvm/njvmadd.pas
@@ -170,14 +170,14 @@ interface
is_emptyset(left)) then
begin
left:=caddrnode.create_internal(left);
- include(left.flags,nf_typedaddr);
+ include(taddrnode(left).addrnodeflags,anf_typedaddr);
if isenum then
begin
inserttypeconv_explicit(left,java_juenumset);
if right.resultdef.typ=setdef then
begin
right:=caddrnode.create_internal(right);
- include(right.flags,nf_typedaddr);
+ include(taddrnode(right).addrnodeflags,anf_typedaddr);
inserttypeconv_explicit(right,java_juenumset);
end;
end
@@ -187,7 +187,7 @@ interface
if right.resultdef.typ=setdef then
begin
right:=caddrnode.create_internal(right);
- include(right.flags,nf_typedaddr);
+ include(taddrnode(right).addrnodeflags,anf_typedaddr);
inserttypeconv_explicit(right,java_jubitset);
end;
end;
diff --git a/compiler/jvm/njvmcal.pas b/compiler/jvm/njvmcal.pas
index 27308e71f6..124941f710 100644
--- a/compiler/jvm/njvmcal.pas
+++ b/compiler/jvm/njvmcal.pas
@@ -267,7 +267,7 @@ implementation
begin
{ pass pointer to the struct }
left:=caddrnode.create_internal(left);
- include(left.flags,nf_typedaddr);
+ include(taddrnode(left).addrnodeflags,anf_typedaddr);
typecheckpass(left);
end;
{ wrap the primitive type in an object container
@@ -551,7 +551,7 @@ implementation
if not tprocvardef(right.resultdef).is_addressonly then
begin
right:=caddrnode.create_internal(right);
- include(right.flags,nf_typedaddr);
+ include(taddrnode(right).addrnodeflags,anf_typedaddr);
end;
right:=ctypeconvnode.create_explicit(right,pdclass);
include(right.flags,nf_load_procvar);
diff --git a/compiler/jvm/njvmcnv.pas b/compiler/jvm/njvmcnv.pas
index 835eb96ccd..5c4f666988 100644
--- a/compiler/jvm/njvmcnv.pas
+++ b/compiler/jvm/njvmcnv.pas
@@ -374,7 +374,7 @@ implementation
setclassdef:=java_juenumset;
end;
left:=caddrnode.create_internal(left);
- include(left.flags,nf_typedaddr);
+ include(taddrnode(left).addrnodeflags,anf_typedaddr);
inserttypeconv_explicit(left,setclassdef);
result:=ccallnode.createinternmethod(
cloadvmtaddrnode.create(ctypenode.create(setclassdef)),
diff --git a/compiler/jvm/njvminl.pas b/compiler/jvm/njvminl.pas
index a336cd0e27..006d7f750a 100644
--- a/compiler/jvm/njvminl.pas
+++ b/compiler/jvm/njvminl.pas
@@ -366,7 +366,7 @@ implementation
tcallparanode(left).right:=nil;
seteledef:=tsetdef(setpara.resultdef).elementdef;
setpara:=caddrnode.create_internal(setpara);
- include(setpara.flags,nf_typedaddr);
+ include(taddrnode(setpara).addrnodeflags,anf_typedaddr);
if seteledef.typ=enumdef then
begin
inserttypeconv_explicit(setpara,java_juenumset);
diff --git a/compiler/jvm/njvmld.pas b/compiler/jvm/njvmld.pas
index fd777b15ac..fdb6465439 100644
--- a/compiler/jvm/njvmld.pas
+++ b/compiler/jvm/njvmld.pas
@@ -132,7 +132,7 @@ function tjvmassignmentnode.pass_1: tnode;
{ call ShortstringClass(@shortstring).setChar(index,char) }
tvecnode(target).left:=caddrnode.create_internal(tvecnode(target).left);
{ avoid useless typecheck when casting to shortstringclass }
- include(tvecnode(target).left.flags,nf_typedaddr);
+ include(taddrnode(tvecnode(target).left).addrnodeflags,anf_typedaddr);
inserttypeconv_explicit(tvecnode(target).left,java_shortstring);
psym:=search_struct_member(tabstractrecorddef(java_shortstring),'SETCHAR');
if not assigned(psym) or
diff --git a/compiler/jvm/njvmmem.pas b/compiler/jvm/njvmmem.pas
index 6f18c0481d..b052c2d466 100644
--- a/compiler/jvm/njvmmem.pas
+++ b/compiler/jvm/njvmmem.pas
@@ -383,7 +383,7 @@ implementation
stringclass:=java_shortstring;
left:=caddrnode.create_internal(left);
{ avoid useless typecheck when casting to shortstringclass }
- include(left.flags,nf_typedaddr);
+ include(taddrnode(left).addrnodeflags,anf_typedaddr);
end
else
internalerror(2011052407);
diff --git a/compiler/jvm/njvmset.pas b/compiler/jvm/njvmset.pas
index adc13f6060..0e2f4200ca 100644
--- a/compiler/jvm/njvmset.pas
+++ b/compiler/jvm/njvmset.pas
@@ -84,7 +84,7 @@ implementation
exit;
{ otherwise call set helper }
right:=caddrnode.create_internal(right);
- include(right.flags,nf_typedaddr);
+ include(taddrnode(right).addrnodeflags,anf_typedaddr);
if isenum then
begin
inserttypeconv_explicit(left,java_jlenum);
diff --git a/compiler/jvm/njvmutil.pas b/compiler/jvm/njvmutil.pas
index af73f759ec..91e159ad89 100644
--- a/compiler/jvm/njvmutil.pas
+++ b/compiler/jvm/njvmutil.pas
@@ -125,7 +125,7 @@ implementation
if jvmimplicitpointertype(p.resultdef) then
begin
p:=caddrnode.create(p);
- include(p.flags,nf_typedaddr);
+ include(taddrnode(p).addrnodeflags,anf_typedaddr);
end;
paras:=ccallparanode.create(ctypeconvnode.create_explicit(p,
search_system_type('TJOBJECTARRAY').typedef),nil);
diff --git a/compiler/ncal.pas b/compiler/ncal.pas
index 8ea77e452f..fdcd9eb7b1 100644
--- a/compiler/ncal.pas
+++ b/compiler/ncal.pas
@@ -4840,7 +4840,7 @@ implementation
if tabstractvarsym(para.parasym).varspez=vs_const then
tempnode.includetempflag(ti_const);
paraaddr:=caddrnode.create_internal(para.left);
- include(paraaddr.flags,nf_typedaddr);
+ include(paraaddr.addrnodeflags,anf_typedaddr);
addstatement(inlineinitstatement,cassignmentnode.create(ctemprefnode.create(tempnode),
paraaddr));
para.left:=cderefnode.create(ctemprefnode.create(tempnode));
diff --git a/compiler/ncgnstld.pas b/compiler/ncgnstld.pas
index 9c511bb123..85283aaa8f 100644
--- a/compiler/ncgnstld.pas
+++ b/compiler/ncgnstld.pas
@@ -129,7 +129,7 @@ implementation
if not assigned(left) then
begin
left:=caddrnode.create_internal(cloadnode.create(tprocdef(symtableentry.owner.defowner).parentfpstruct,tprocdef(symtableentry.owner.defowner).parentfpstruct.owner));
- include(left.flags,nf_typedaddr);
+ include(taddrnode(left).addrnodeflags,anf_typedaddr);
end;
typecheckpass(left);
end;
diff --git a/compiler/ncgnstmm.pas b/compiler/ncgnstmm.pas
index 4ccb576dbb..4251d001ec 100644
--- a/compiler/ncgnstmm.pas
+++ b/compiler/ncgnstmm.pas
@@ -109,7 +109,7 @@ implementation
else
begin
result:=caddrnode.create_internal(cloadnode.create(current_procinfo.procdef.parentfpstruct,current_procinfo.procdef.parentfpstruct.owner));
- include(result.flags,nf_typedaddr);
+ include(taddrnode(result).addrnodeflags,anf_typedaddr);
currpi:=current_procinfo;
end;
{ follow the chain of parentfpstructs until we arrive at the one we
diff --git a/compiler/ncnv.pas b/compiler/ncnv.pas
index 4e87d3fdc6..6761f9d292 100644
--- a/compiler/ncnv.pas
+++ b/compiler/ncnv.pas
@@ -2419,7 +2419,7 @@ implementation
begin
left.resultdef:=resultdef;
if (nf_explicit in flags) and (left.nodetype = addrn) then
- include(left.flags, nf_typedaddr);
+ include(taddrnode(left).addrnodeflags,anf_typedaddr);
result:=left;
left:=nil;
end;
diff --git a/compiler/nmem.pas b/compiler/nmem.pas
index cdee3e3fdb..83f0a0348c 100644
--- a/compiler/nmem.pas
+++ b/compiler/nmem.pas
@@ -70,7 +70,8 @@ interface
taddrnodeflag = (
{ generated by the Ofs() internal function }
- anf_ofs
+ anf_ofs,
+ anf_typedaddr
);
taddrnodeflags = set of taddrnodeflag;
@@ -682,7 +683,7 @@ implementation
inc(offset,hsym.fieldoffset);
hp:=tunarynode(hp).left;
end;
- if nf_typedaddr in flags then
+ if anf_typedaddr in addrnodeflags then
res:=cpointerconstnode.create(offset,cpointerdef.getreusable(left.resultdef))
else
res:=cpointerconstnode.create(offset,voidpointertype);
@@ -691,7 +692,7 @@ implementation
else if (nf_internal in flags) or
valid_for_addr(left,true) then
begin
- if not(nf_typedaddr in flags) then
+ if not(anf_typedaddr in addrnodeflags) then
resultdef:=voidpointertype
else
resultdef:=cpointerdef.getreusable(left.resultdef);
@@ -1341,7 +1342,8 @@ implementation
function is_big_untyped_addrnode(p: tnode): boolean;
begin
is_big_untyped_addrnode:=(p.nodetype=addrn) and
- not (nf_typedaddr in p.flags) and (taddrnode(p).left.resultdef.size > 1);
+ not (anf_typedaddr in taddrnode(p).addrnodeflags) and
+ (taddrnode(p).left.resultdef.size > 1);
end;
end.
diff --git a/compiler/node.pas b/compiler/node.pas
index 975d56bb8b..b8600000bf 100644
--- a/compiler/node.pas
+++ b/compiler/node.pas
@@ -229,9 +229,6 @@ interface
during simplify, the flag must be moved to another node }
nf_usercode_entry,
- { taddrnode }
- nf_typedaddr,
-
{ tderefnode }
nf_no_checkpointer,
@@ -277,7 +274,7 @@ interface
{ tloadvmtaddrnode }
nf_ignore_for_wpo { we know that this loadvmtaddrnode cannot be used to construct a class instance }
- { WARNING: there are now 32 elements in this type, and a set of this
+ { WARNING: there are now 31 elements in this type, and a set of this
type is written to the PPU. So before adding more than 32 elements,
either move some flags to specific nodes, or stream a normalset
to the ppu
diff --git a/compiler/nopt.pas b/compiler/nopt.pas
index f8a8c53210..658b4a9544 100644
--- a/compiler/nopt.pas
+++ b/compiler/nopt.pas
@@ -325,7 +325,7 @@ begin
if is_shortstr then
begin
sn:=caddrnode.create(sn);
- include(sn.flags,nf_typedaddr);
+ include(taddrnode(sn).addrnodeflags,anf_typedaddr);
include(sn.flags,nf_internal);
end;
arrp:=carrayconstructornode.create(sn,arrp);
diff --git a/compiler/pexpr.pas b/compiler/pexpr.pas
index b7155c5820..0ad3e357e9 100644
--- a/compiler/pexpr.pas
+++ b/compiler/pexpr.pas
@@ -3780,7 +3780,7 @@ implementation
p1:=caddrnode.create(p1);
p1.fileinfo:=filepos;
if cs_typed_addresses in current_settings.localswitches then
- include(p1.flags,nf_typedaddr);
+ include(taddrnode(p1).addrnodeflags,anf_typedaddr);
{ Store the procvar that we are expecting, the
addrn will use the information to find the correct
procdef or it will return an error }
diff --git a/compiler/pstatmnt.pas b/compiler/pstatmnt.pas
index 096dbab38b..3ddd3ad172 100644
--- a/compiler/pstatmnt.pas
+++ b/compiler/pstatmnt.pas
@@ -683,7 +683,7 @@ implementation
if not hasimplicitderef then
begin
valuenode:=caddrnode.create_internal_nomark(valuenode);
- include(valuenode.flags,nf_typedaddr);
+ include(taddrnode(valuenode).addrnodeflags,anf_typedaddr);
refnode:=cderefnode.create(refnode);
fillchar(refnode.fileinfo,sizeof(tfileposinfo),0);
end;
diff --git a/compiler/symcreat.pas b/compiler/symcreat.pas
index f07889ff7d..502abc9614 100644
--- a/compiler/symcreat.pas
+++ b/compiler/symcreat.pas
@@ -1328,7 +1328,7 @@ implementation
if addrparam then
begin
initcode:=caddrnode.create_internal(initcode);
- include(initcode.flags,nf_typedaddr);
+ include(taddrnode(initcode).addrnodeflags,anf_typedaddr);
end;
initcode:=cassignmentnode.create(
csubscriptnode.create(result,cloadnode.create(pd.parentfpstruct,pd.parentfpstruct.owner)),