Bug only occurring when compile optimization enabled
Yes, your expression fatally confuses the JIT optimizer. The generated machine code looks like this: if ((value == null || value == new string[0]) == false) 00000027 test esi,esi ; value == null? 00000029 je 00000075 0000002b xor edx,edx ; new string[0] 0000002d mov ecx,6D913BD2h 00000032 call FFD20BC8 00000037 cmp eax,esi ; (value == new … Read more