Как исправить это утверждение может пройти через [-Werror = implicit-fallthrough =]?

-3 cybodroid [2018-07-21 10:10:00]

Что значит

this statement may fall through [-Werror=implicit-fallthrough=]

имею в виду?

Я получаю эту ошибку при компиляции в следующем виде:

switch(eT)
    {
    case SEL_CRIT:
        {
            TYPE1* psSel;
            iRetVal = dbseq(enB->m_ps,
                NULL, NULL, &esM, NULL, ESEC);
            while (iRetVal == 0)
            {
                if(psEnterprise)
                {
                    bool iFound = false;
                    for (i = 0; i< psME->m_pslave[0].m_uc; i++)
                    {
                        ENT node1;
                        sEOS = psME>m_pslave[0].m_pslavecnt[i];

                    }
                    if (iFound && (psME->m_NOTOVERLOADED == false))
                    {
                        return psME;
                    }
                }
            }
            psSel = (M_EN*)pCrit;
            LOG_INFO(FAIL_TO_LOAD, psME->m_ONG, psME->EN);
            int_Enterprise = NULL;
        }

в

int_Enterprise = NULL;

где

int_Enterprise - это указатель на структуру.

Как я могу это исправить?

c++ c cmake


1 ответ


2 Решение Jesper Juhl [2018-07-21 10:23:00]

У вас нет break; в конце вашего case: так что выполнение провалится в следующий case. Добавьте оператор break чтобы предотвратить [[fallthrough]] если это то, что вы хотите, или добавить атрибут [[fallthrough]] если подразумевается провал.