diff options
author | jonas <jonas@3ad0048d-3df7-0310-abae-a5850022a9f2> | 2016-08-21 14:23:09 +0000 |
---|---|---|
committer | jonas <jonas@3ad0048d-3df7-0310-abae-a5850022a9f2> | 2016-08-21 14:23:09 +0000 |
commit | 7e8f64a6e80f1cdecd1a00d20efaa5ac02fa074a (patch) | |
tree | 09339c050def8930b291f09aebbcfc16f0f63fe7 /compiler/ncgld.pas | |
parent | bdbf33daf9496ed581c47ae4e3714889210fdcd9 (diff) | |
download | fpc-7e8f64a6e80f1cdecd1a00d20efaa5ac02fa074a.tar.gz |
* changed ttemp*node.tempinfo^.flags to a private field, and added setters
and getters for the ttemp*node classes instead
o this will allow descendants to prevent certain flags from being added
or removed. E.g. for LLVM, certain temps must never be put in registers
because it cannot typecast a value in a register from a non-record/array
type to an array type without forcing it to memory (so if that is done
on an lvalue, the result will be written to the memory temp instead of
to the register)
git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@34358 3ad0048d-3df7-0310-abae-a5850022a9f2
Diffstat (limited to 'compiler/ncgld.pas')
-rw-r--r-- | compiler/ncgld.pas | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/compiler/ncgld.pas b/compiler/ncgld.pas index 7d6ee27df5..85b03bb80f 100644 --- a/compiler/ncgld.pas +++ b/compiler/ncgld.pas @@ -121,13 +121,13 @@ implementation end; temprefn: begin - if (ti_valid in ttemprefnode(n).tempinfo^.flags) and + if (ti_valid in ttemprefnode(n).tempflags) and { memory temp... } (ttemprefnode(n).tempinfo^.location.loc in [LOC_REFERENCE]) and { ... at the place we are looking for } references_equal(ttemprefnode(n).tempinfo^.location.reference,rr^.old^) and { its address cannot have escaped the current routine } - not(ti_addr_taken in ttemprefnode(n).tempinfo^.flags) then + not(ti_addr_taken in ttemprefnode(n).tempflags) then begin { relocate the temp } tcgtemprefnode(n).changelocation(rr^.new^); @@ -722,7 +722,7 @@ implementation releaseright:= (left.nodetype<>temprefn) or - not(ti_const in ttemprefnode(left).tempinfo^.flags); + not(ti_const in ttemprefnode(left).tempflags); { shortstring assignments are handled separately } if is_shortstring(left.resultdef) then |