C
C Mutations
StatementBlock
Before
void f() { x = 1; }
After
void f() {}
Condition
Before
void f() { if (x) { return; } }
After
void f() { if (1) { return; } }
void f() { if (0) { return; } }
BinaryOp - Add
Before
int x = a + b;
After
int x = a - b;
int x = a * b;
BinaryOp - And
Before
int x = a && b;
After
int x = a || b;
BinaryOp - BitAnd
Before
int x = a & b;
After
int x = a | b;
int x = a ^ b;
BinaryOp - BitOr
Before
int x = a | b;
After
int x = a & b;
int x = a ^ b;
BinaryOp - BitXor
Before
int x = a ^ b;
After
int x = a & b;
int x = a | b;
BinaryOp - Div
Before
int x = a / b;
After
int x = a * b;
int x = a - b;
BinaryOp - Eq
Before
int x = a == b;
After
int x = a != b;
BinaryOp - Gt
Before
int x = a > b;
After
int x = a <= b;
int x = a >= b;
BinaryOp - Gte
Before
int x = a >= b;
After
int x = a < b;
int x = a > b;
BinaryOp - Lt
Before
int x = a < b;
After
int x = a >= b;
int x = a <= b;
BinaryOp - Lte
Before
int x = a <= b;
After
int x = a > b;
int x = a < b;
BinaryOp - Mul
Before
int x = a * b;
After
int x = a / b;
int x = a + b;
BinaryOp - Or
Before
int x = a || b;
After
int x = a && b;
BinaryOp - Rem
Before
int x = a % b;
After
int x = a * b;
int x = a / b;
BinaryOp - Shl
Before
int x = a << b;
After
int x = a >> b;
BinaryOp - Shr
Before
int x = a >> b;
After
int x = a << b;
BinaryOp - Ne
Before
int x = a != b;
After
int x = a == b;
BinaryOp - Sub
Before
int x = a - b;
After
int x = a + b;
int x = a / b;
Assign - AddAssign
Before
void f() { x += 1; }
After
void f() { x -= 1; }
void f() { x = 1; }
Assign - BitAndAssign
Before
void f() { x &= 1; }
After
void f() { x |= 1; }
void f() { x = 1; }
Assign - BitOrAssign
Before
void f() { x |= 1; }
After
void f() { x &= 1; }
void f() { x = 1; }
Assign - BitXorAssign
Before
void f() { x ^= 1; }
After
void f() { x &= 1; }
void f() { x = 1; }
Assign - DivAssign
Before
void f() { x /= 1; }
After
void f() { x *= 1; }
void f() { x = 1; }
Assign - MulAssign
Before
void f() { x *= 1; }
After
void f() { x /= 1; }
void f() { x = 1; }
Assign - NormalAssign
Before
void f() { x = 1; }
After
void f() { x += 1; }
void f() { x -= 1; }
Assign - RemAssign
Before
void f() { x %= 1; }
After
void f() { x *= 1; }
void f() { x = 1; }
Assign - ShlAssign
Before
void f() { x <<= 1; }
After
void f() { x >>= 1; }
void f() { x = 1; }
Assign - ShrAssign
Before
void f() { x >>= 1; }
After
void f() { x <<= 1; }
void f() { x = 1; }
Assign - SubAssign
Before
void f() { x -= 1; }
After
void f() { x += 1; }
void f() { x = 1; }
ArrayDecl - Inline
Before
int arr[] = {1, 2, 3};
After
int arr[] = {};
Literal - String
Before
char *s = "hello";
After
char *s = "";
Literal - EmptyString
Before
char *s = "";
After
char *s = "bough";
Literal - Number
Before
int x = 42;
After
int x = 0;
int x = 1;
int x = -1;
UnaryNot
Before
void f() { int x = !y; }
After
void f() { int x = y; }
SwitchCase
Before
void f() { switch(x) { case 1: break; } }
After
void f() { switch(x) { } }