This issue was copied from checkedc/checkedc-clang#814
For a compound assignment to a variable, e.g. i += 2, the UEQ set currently will contain { (i - 2) + 2, i}. This is the same as saying that i == i since (i - 2 + 2) == i (ignoring integer overflow), so this is a tautology and should not be included in UEQ.
The UEQ set should not contain equality facts implied by assignments to variables where the variable also appears on the right-hand side of the assignment.
This issue was copied from checkedc/checkedc-clang#814
For a compound assignment to a variable, e.g.
i += 2, the UEQ set currently will contain{ (i - 2) + 2, i}. This is the same as saying thati == isince(i - 2 + 2) == i(ignoring integer overflow), so this is a tautology and should not be included in UEQ.The UEQ set should not contain equality facts implied by assignments to variables where the variable also appears on the right-hand side of the assignment.