From f00a55ae085dbde8ebb87370a3eacecbe4c9aab6 Mon Sep 17 00:00:00 2001 From: florian Date: Mon, 31 Aug 2015 20:03:51 +0000 Subject: [PATCH] + tinlinenode.createintern * do not do range checking on constants created by pred/succ if these nodes are created internally git-svn-id: trunk@31471 - --- compiler/ninl.pas | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/compiler/ninl.pas b/compiler/ninl.pas index cd2fac4081..e7102822f6 100644 --- a/compiler/ninl.pas +++ b/compiler/ninl.pas @@ -34,6 +34,7 @@ interface tinlinenode = class(tunarynode) inlinenumber : byte; constructor create(number : byte;is_const:boolean;l : tnode);virtual; + constructor createintern(number : byte;is_const:boolean;l : tnode);virtual; constructor ppuload(t:tnodetype;ppufile:tcompilerppufile);override; procedure ppuwrite(ppufile:tcompilerppufile);override; function dogetcopy : tnode;override; @@ -138,6 +139,14 @@ implementation end; + constructor tinlinenode.createintern(number : byte; is_const : boolean; + l : tnode); + begin + create(number,is_const,l); + include(flags,nf_internal); + end; + + constructor tinlinenode.ppuload(t:tnodetype;ppufile:tcompilerppufile); begin inherited ppuload(t,ppufile); @@ -2286,7 +2295,7 @@ implementation result:=create_simplified_ord_const(vl,resultdef,forinline) else { check the range for enums, chars, booleans } - result:=cordconstnode.create(vl,left.resultdef,true) + result:=cordconstnode.create(vl,left.resultdef,not(nf_internal in flags)) end end; in_low_x,