.. title:: clang-tidy - misc-redundant-expression misc-redundant-expression ========================= Detect redundant expressions which are typically errors due to copy-paste. Depending on the operator expressions may be - redundant, - always ``true``, - always ``false``, - always a constant (zero or one). Examples: .. code-block:: c++ ((x+1) | (x+1)) // (x+1) is redundant (p->x == p->x) // always true (p->x < p->x) // always false (speed - speed + 1 == 12) // speed - speed is always zero int b = a | 4 | a // identical expr on both sides ((x=1) | (x=1)) // expression is identical (DEFINE_1 | DEFINE_1) // same macro on the both sides ((DEF_1 + DEF_2) | (DEF_1+DEF_2)) // expressions differ in spaces only Floats are handled except in the case that NaNs are checked like so: .. code-block:: c++ int TestFloat(float F) { if (F == F) // Identical float values used return 1; return 0; } int TestFloat(float F) { // Testing NaN. if (F != F && F == F) // does not warn return 1; return 0; }