summaryrefslogtreecommitdiff
path: root/compiler/node.pas
diff options
context:
space:
mode:
authorflorian <florian@3ad0048d-3df7-0310-abae-a5850022a9f2>2007-05-06 10:59:09 +0000
committerflorian <florian@3ad0048d-3df7-0310-abae-a5850022a9f2>2007-05-06 10:59:09 +0000
commit9825648ce39211fc8ad3af0350d211cfb013fc62 (patch)
tree145e017e2d18bc89563a97e26d5b086f608745a9 /compiler/node.pas
parent38bad5ee452abab1c314443e5082f3e0f3fbad42 (diff)
downloadfpc-9825648ce39211fc8ad3af0350d211cfb013fc62.tar.gz
* backup commit of more dfa stuff
git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@7287 3ad0048d-3df7-0310-abae-a5850022a9f2
Diffstat (limited to 'compiler/node.pas')
-rw-r--r--compiler/node.pas15
1 files changed, 15 insertions, 0 deletions
diff --git a/compiler/node.pas b/compiler/node.pas
index cb25f4724d..9324ca5eb1 100644
--- a/compiler/node.pas
+++ b/compiler/node.pas
@@ -203,6 +203,7 @@ interface
nf_pass1_done,
nf_write, { Node is written to }
nf_isproperty,
+ nf_processing,
{ taddrnode }
nf_typedaddr,
@@ -250,6 +251,7 @@ interface
{ tblocknode }
nf_block_with_exit
+
);
tnodeflags = set of tnodeflag;
@@ -359,6 +361,9 @@ interface
procedure printnodetree(var t:text);virtual;
procedure concattolist(l : tlinkedlist);virtual;
function ischild(p : tnode) : boolean;virtual;
+
+ { ensures that the optimizer info record is allocated }
+ function allocoptinfo : poptinfo;inline;
end;
tnodeclass = class of tnode;
@@ -775,6 +780,8 @@ implementation
if firstpasscount>maxfirstpasscount then
maxfirstpasscount:=firstpasscount;
{$endif EXTDEBUG}
+ if assigned(optinfo) then
+ dispose(optinfo);
end;
@@ -905,6 +912,14 @@ implementation
end;
+ { ensures that the optimizer info record is allocated }
+ function tnode.allocoptinfo : poptinfo;inline;
+ begin
+ if not(assigned(optinfo)) then
+ new(optinfo);
+ result:=optinfo;
+ end;
+
{****************************************************************************
TUNARYNODE
****************************************************************************}