| import org.checkerframework.checker.signedness.qual.*; |
| |
| public class Operations { |
| |
| public void DivModTest(@Unsigned int unsigned) { |
| |
| @UnknownSignedness int testRes; |
| |
| // :: error: (operation.unsignedlhs) |
| testRes = unsigned / 1; |
| |
| // :: error: (operation.unsignedrhs) |
| testRes = 1 / unsigned; |
| |
| // :: error: (operation.unsignedlhs) |
| testRes = unsigned % 1; |
| |
| // :: error: (operation.unsignedrhs) |
| testRes = 1 % unsigned; |
| } |
| |
| public void SignedRightShiftTest(@Unsigned int unsigned) { |
| |
| @UnknownSignedness int testRes; |
| |
| // :: error: (shift.signed) |
| testRes = unsigned >> 1; |
| } |
| |
| public void UnsignedRightShiftTest(@Signed int signed) { |
| |
| @UnknownSignedness int testRes; |
| |
| // :: error: (shift.unsigned) |
| testRes = signed >>> 1; |
| } |
| |
| public void BinaryOperationTest(@Unsigned int unsigned, @Signed int signed) { |
| |
| @UnknownSignedness int testRes; |
| |
| // :: error: (operation.mixed.unsignedlhs) |
| testRes = unsigned * signed; |
| |
| // :: error: (operation.mixed.unsignedrhs) |
| testRes = signed * unsigned; |
| |
| // :: error: (operation.mixed.unsignedlhs) |
| testRes = unsigned + signed; |
| |
| // :: error: (operation.mixed.unsignedrhs) |
| testRes = signed + unsigned; |
| |
| // :: error: (operation.mixed.unsignedlhs) |
| testRes = unsigned - signed; |
| |
| // :: error: (operation.mixed.unsignedrhs) |
| testRes = signed - unsigned; |
| |
| // :: error: (operation.mixed.unsignedlhs) |
| testRes = unsigned & signed; |
| |
| // :: error: (operation.mixed.unsignedrhs) |
| testRes = signed & unsigned; |
| |
| // :: error: (operation.mixed.unsignedlhs) |
| testRes = unsigned ^ signed; |
| |
| // :: error: (operation.mixed.unsignedrhs) |
| testRes = signed ^ unsigned; |
| |
| // :: error: (operation.mixed.unsignedlhs) |
| testRes = unsigned | signed; |
| |
| // :: error: (operation.mixed.unsignedrhs) |
| testRes = signed | unsigned; |
| } |
| } |