diff options
author | Brian Sullivan <briansul@microsoft.com> | 2016-12-08 14:55:23 -0800 |
---|---|---|
committer | Brian Sullivan <briansul@microsoft.com> | 2016-12-08 14:55:23 -0800 |
commit | 61b8887fbdb63df52d240a29bfbe68688df801a0 (patch) | |
tree | 0bb9aa625d9b844cb44a268ebde89897c106f504 /src/jit | |
parent | bf4ed11eb5cee7123fd0c6fa5b60f09fe7adf23e (diff) | |
download | coreclr-61b8887fbdb63df52d240a29bfbe68688df801a0.tar.gz coreclr-61b8887fbdb63df52d240a29bfbe68688df801a0.tar.bz2 coreclr-61b8887fbdb63df52d240a29bfbe68688df801a0.zip |
The fix is to set the GTF_EXCEPT and GTF_GLOB_REF for every GT_DYN_BLK node that we create.
We typically don't have any information about the address supplied to a GT_DYN_BLK so we should
conservatively allow that it can either be a null pointer or could point into the GC heap.
Diffstat (limited to 'src/jit')
-rw-r--r-- | src/jit/gentree.h | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/src/jit/gentree.h b/src/jit/gentree.h index 05a3a4a070..b5390f3841 100644 --- a/src/jit/gentree.h +++ b/src/jit/gentree.h @@ -4258,6 +4258,8 @@ public: GenTreeDynBlk(GenTreePtr addr, GenTreePtr dynamicSize) : GenTreeBlk(GT_DYN_BLK, TYP_STRUCT, addr, 0), gtDynamicSize(dynamicSize), gtEvalSizeFirst(false) { + // Conservatively the 'addr' could be null or point into the global heap. + gtFlags |= GTF_EXCEPT | GTF_GLOB_REF; gtFlags |= (dynamicSize->gtFlags & GTF_ALL_EFFECT); } |