diff options
Diffstat (limited to 'src/jit/gentree.h')
-rw-r--r-- | src/jit/gentree.h | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/src/jit/gentree.h b/src/jit/gentree.h index 6a1fd4a9bb..e639d5400e 100644 --- a/src/jit/gentree.h +++ b/src/jit/gentree.h @@ -798,6 +798,7 @@ public: #define GTF_INX_REFARR_LAYOUT 0x20000000 // GT_INDEX #define GTF_INX_STRING_LAYOUT 0x40000000 // GT_INDEX -- this uses the special string array layout +#define GTF_IND_TGT_NOT_HEAP 0x80000000 // GT_IND -- the target is not on the heap #define GTF_IND_VOLATILE 0x40000000 // GT_IND -- the load or store must use volatile sematics (this is a nop on X86) #define GTF_IND_NONFAULTING 0x20000000 // Operations for which OperIsIndir() is true -- An indir that cannot fault. // Same as GTF_ARRLEN_NONFAULTING. @@ -818,7 +819,7 @@ public: #define GTF_IND_FLAGS \ (GTF_IND_VOLATILE | GTF_IND_TGTANYWHERE | GTF_IND_NONFAULTING | GTF_IND_TLS_REF | \ - GTF_IND_UNALIGNED | GTF_IND_INVARIANT | GTF_IND_ARR_INDEX) + GTF_IND_UNALIGNED | GTF_IND_INVARIANT | GTF_IND_ARR_INDEX | GTF_IND_TGT_NOT_HEAP) #define GTF_CLS_VAR_VOLATILE 0x40000000 // GT_FIELD/GT_CLS_VAR -- same as GTF_IND_VOLATILE #define GTF_CLS_VAR_INITCLASS 0x20000000 // GT_FIELD/GT_CLS_VAR -- same as GTF_FLD_INITCLASS @@ -1807,8 +1808,11 @@ public: while (node->gtOper == GT_COMMA) { node = node->gtGetOp2(); - assert(node->gtType == oldType); - node->gtType = newType; + if (node->gtType != newType) + { + assert(node->gtType == oldType); + node->gtType = newType; + } } } |