Fix GTF_ flag collision
authorJoseph Tremoulet <jotrem@microsoft.com>
Fri, 2 Sep 2016 19:22:01 +0000 (15:22 -0400)
committerJoseph Tremoulet <jotrem@microsoft.com>
Tue, 6 Sep 2016 16:19:07 +0000 (12:19 -0400)
commita5bc863a99fc06e030d077d4f31d13080eb2e064
tree2e7256a2f0aeeaf6db443e117b9304a71411f0f7
parentf3b4c5d2968b52b60dec93e21d1767a057a4423b
Fix GTF_ flag collision

Define flag `GTF_IS_IN_CSE` (which is used only to communicate in a call to
`gtNodeHasSideEffects` that the caller wants to disregard the side-effect
of running a .cctor) as `GTF_BOOLEAN` rather than `GTF_MAKE_CSE` -- as the
comment at the definition of `GTF_IS_IN_CSE` indicates, the only
requirement on its value is that it not conflict with one of the
side-effect flags, but `gtNodeHasSideEffects` does in fact check for
`GTF_MAKE_CSE`, so the current value conflicts.

Also update the code in `gtNodeHasSideEffects` that is dictated by
`GTF_IS_IN_CSE` to check just for that bit, instead of checking that the
caller passed in exactly `GTF_PERSISTENT_SIDE_EFFECTS_IN_CSE` -- no need
to entangle conceptually independent parameters.

Fixes dotnet/coreclr#7042.

Commit migrated from https://github.com/dotnet/coreclr/commit/4aae2404c2a74a1d3e7e8a37810e6c7c67aabb64
src/coreclr/src/jit/gentree.cpp
src/coreclr/src/jit/gentree.h