Используйте атрибут fallthrough в switch

Обязательно указывайте атрибут [[fallthrough]]; (появился в С++17) для уточнения, что оператор break; внутри блока case отсутствует намеренно.

Неправильно:

switch (child->type) {
case XML_ELEMENT_NODE:
    // ...
    break;
case XML_TEXT_NODE:
    // ...
    break;
case XML_CDATA_SECTION_NODE:
    trim = false;
case XML_ENTITY_REF_NODE:
case XML_ENTITY_NODE:
    // ...
    break;
default:
    assert(false);
}

Правильно:

switch (child->type) {
case XML_ELEMENT_NODE:
    // ...
    break;
case XML_TEXT_NODE:
    // ...
    break;
case XML_CDATA_SECTION_NODE:
    trim = false;
    [[fallthrough]]; // нет break;
case XML_ENTITY_REF_NODE:
case XML_ENTITY_NODE:
    // ...
    break;
default:
    assert(false);
}