diff options
author | jonas <jonas@3ad0048d-3df7-0310-abae-a5850022a9f2> | 2019-11-10 12:00:05 +0000 |
---|---|---|
committer | jonas <jonas@3ad0048d-3df7-0310-abae-a5850022a9f2> | 2019-11-10 12:00:05 +0000 |
commit | 096ffd3d576f00f70d2814949c858d3a5b7a94b5 (patch) | |
tree | 98b73779ce4c7a3d64d69d9e81b5bf3399592457 /compiler/ngtcon.pas | |
parent | 86f6642db827dcdf5560de599da62eac08b9e93f (diff) | |
download | fpc-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.pas | 6 |
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); |