summaryrefslogtreecommitdiff
path: root/compiler/ngtcon.pas
diff options
context:
space:
mode:
authorjonas <jonas@3ad0048d-3df7-0310-abae-a5850022a9f2>2019-11-10 12:00:05 +0000
committerjonas <jonas@3ad0048d-3df7-0310-abae-a5850022a9f2>2019-11-10 12:00:05 +0000
commit096ffd3d576f00f70d2814949c858d3a5b7a94b5 (patch)
tree98b73779ce4c7a3d64d69d9e81b5bf3399592457 /compiler/ngtcon.pas
parent86f6642db827dcdf5560de599da62eac08b9e93f (diff)
downloadfpc-096ffd3d576f00f70d2814949c858d3a5b7a94b5.tar.gz
* properly perform (or not) range/overflow checking when performing constant
propagation into inlined routines, regardless of the range/overflow checking state at the caller site git-svn-id: https://svn.freepascal.org/svn/fpc/trunk@43436 3ad0048d-3df7-0310-abae-a5850022a9f2
Diffstat (limited to 'compiler/ngtcon.pas')
-rw-r--r--compiler/ngtcon.pas6
1 files changed, 3 insertions, 3 deletions
diff --git a/compiler/ngtcon.pas b/compiler/ngtcon.pas
index b0fcd57110..ec9afba65f 100644
--- a/compiler/ngtcon.pas
+++ b/compiler/ngtcon.pas
@@ -640,7 +640,7 @@ function get_next_varsym(def: tabstractrecorddef; const SymList:TFPHashObjectLis
begin
if is_constboolnode(node) then
begin
- adaptrange(def,tordconstnode(node).value,rc_default);
+ adaptrange(def,tordconstnode(node).value,false,false,cs_check_range in current_settings.localswitches);
ftcb.emit_ord_const(tordconstnode(node).value.svalue,def)
end
else
@@ -674,7 +674,7 @@ function get_next_varsym(def: tabstractrecorddef; const SymList:TFPHashObjectLis
begin
if is_constintnode(node) then
begin
- adaptrange(def,tordconstnode(node).value,rc_default);
+ adaptrange(def,tordconstnode(node).value,false,false,cs_check_range in current_settings.localswitches);
ftcb.emit_ord_const(tordconstnode(node).value.svalue,def);
end
else
@@ -1087,7 +1087,7 @@ function get_next_varsym(def: tabstractrecorddef; const SymList:TFPHashObjectLis
if equal_defs(node.resultdef,def) or
is_subequal(node.resultdef,def) then
begin
- adaptrange(def,tordconstnode(node).value,rc_default);
+ adaptrange(def,tordconstnode(node).value,false,false,cs_check_range in current_settings.localswitches);
case longint(node.resultdef.size) of
1 : ftcb.emit_tai(Tai_const.Create_8bit(Byte(tordconstnode(node).value.svalue)),def);
2 : ftcb.emit_tai(Tai_const.Create_16bit(Word(tordconstnode(node).value.svalue)),def);