Search Issue Tracker

Fixed in 5.2.4

Votes

0

Found in

5.2.2p4

Issue ID

745691

Regression

No

[IL2CPP] Incorrect result returned by an arithmetic expression byte + int + (expression with ?: operator)

IL2CPP

-

Reproduction steps:
1. Open attached project "AssignmentBug"
2. Build scene "Demo" with IL2CPP
--- In the console you will see "TEST: 44, 300, 400, 300"
--- It should actually print (and does print with Mono) "TEST: 300, 300, 400, 300"

This code generates incorrect value:
byte b = 100;
int i = 200;
bool CarryFlag = false;
var newValue = b + i + (CarryFlag ? 1 : 0);

After executing this code newValue will be set to 44.

Add comment

Log in to post comment