C6287

Advertencia C6287: Código redundante: las subexpresiones de izquierda y derecha son idénticas

Esta advertencia indica que se detectó un elemento redundante en una expresión.

Es difícil juzgar la gravedad de este problema sin examinar el código. Una prueba de duplicados por sí misma es inocua, pero las consecuencias de eliminar la segunda prueba pueden ser graves. Se debe inspeccionar el código para garantizar que no se omitió una prueba.

Ejemplo

El código siguiente genera esta advertencia:

void f(int x)
{
  if ((x == 1) && (x == 1)) 
  {
    //logic 
  }
  if ((x != 1) || (x != 1))
  {
    //logic
  }
}

El código siguiente muestra distintos métodos para corregir esta advertencia:

void f(int x, int y)
{
  /* Remove the redundant sub-expression: */
  if (x == 1) 
  {
     // logic 
  }
  if (x != 1) 
  {
    // logic
  }
  /* or test the missing variable: */
  if ((x == 1) && (y == 1))
  {
     // logic
  }
  if ((x != 1) || (y != 1))
  {
     // logic
  }
}