# V6077. A suspicious label is present inside a switch(). It is possible that these are misprints and 'default:' label should be used instead.

Анализатор обнаружил потенциальную ошибку внутри оператора switch. Используется метка с именем похожим на 'default'. Возможно, это опечатка.

Рассмотрим пример:

    int c = getValue();
    double weightCoefficient = 0;
    switch(c){
      case 1:
        weightCoefficient += 3 * (/*math formula #1*/);
      case 2:
        weightCoefficient += 7 * (/*math formula #2*/);
      defalt:
        weightCoefficient += 0.42;
    }

Кажется, после того, как этот код отработает, значение переменной 'weightCoefficient' будет 0.42. Но на самом деле значение 'weightCoefficient' останется равным нулю. Дело в том, что 'defalt' это метка, а не оператор 'default'. Исправленный вариант кода:

    int c = getValue();
    double weightCoefficient = 0;
    switch(c){
      case 1:
        weightCoefficient += 3 * (/*math formula #1*/);
      case 2:
        weightCoefficient += 7 * (/*math formula #2*/);
      default:
        weightCoefficient += 0.42;
    }

Эта диагностика срабатывает также, когда имя метки начинается с 'case'. Есть вероятность, что пропущен пробел. Например, вместо метки 'case1:', должно быть написано 'case 1:'.

Данная диагностика классифицируется как:

CWE-478 CERT-MSC57-J