Fix -Wimplicit-fallthrough warnings from GCC 8
Adds `FALLTHROUGH` macro to specify when a fallthrough is intentional.
Can be replaced by `[[fallthrough]]` if/when we switch to C++17.
The warning is now enabled by default for GCC on `extra` warnings level
(part of GCC's `-Wextra`). It's not enabled in Clang's `-Wextra` yet,
but we could enable it manually once we switch to C++11. There's no
equivalent feature in MSVC for now.
Fixes #26135.
(cherry picked from commit fc370b3feb)
This commit is contained in:
@ -1901,7 +1901,8 @@ void EditorNode::_menu_option_confirm(int p_option, bool p_confirmed) {
|
||||
break;
|
||||
}
|
||||
|
||||
} // fallthrough
|
||||
FALLTHROUGH;
|
||||
}
|
||||
case SCENE_TAB_CLOSE:
|
||||
case FILE_SAVE_SCENE: {
|
||||
|
||||
@ -1920,8 +1921,8 @@ void EditorNode::_menu_option_confirm(int p_option, bool p_confirmed) {
|
||||
|
||||
break;
|
||||
}
|
||||
// fallthrough to save_as
|
||||
};
|
||||
FALLTHROUGH;
|
||||
}
|
||||
case FILE_SAVE_AS_SCENE: {
|
||||
int scene_idx = (p_option == FILE_SAVE_SCENE || p_option == FILE_SAVE_AS_SCENE) ? -1 : tab_closing;
|
||||
|
||||
|
||||
@ -2275,6 +2275,7 @@ void CanvasItemEditor::_gui_input_viewport(const Ref<InputEvent> &p_event) {
|
||||
break;
|
||||
case DRAG_PAN:
|
||||
c = CURSOR_DRAG;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
@ -2611,6 +2612,7 @@ void CanvasItemEditor::_draw_control_helpers(Control *control) {
|
||||
case DRAG_TOP_LEFT:
|
||||
case DRAG_BOTTOM_LEFT:
|
||||
_draw_margin_at_position(control->get_size().width, parent_transform.xform(Vector2((node_pos_in_parent[0] + node_pos_in_parent[2]) / 2, node_pos_in_parent[3])) + Vector2(0, 5), MARGIN_BOTTOM);
|
||||
FALLTHROUGH;
|
||||
case DRAG_MOVE:
|
||||
start = Vector2(node_pos_in_parent[0], Math::lerp(node_pos_in_parent[1], node_pos_in_parent[3], ratio));
|
||||
end = start - Vector2(control->get_margin(MARGIN_LEFT), 0);
|
||||
@ -2625,6 +2627,7 @@ void CanvasItemEditor::_draw_control_helpers(Control *control) {
|
||||
case DRAG_TOP_RIGHT:
|
||||
case DRAG_BOTTOM_RIGHT:
|
||||
_draw_margin_at_position(control->get_size().width, parent_transform.xform(Vector2((node_pos_in_parent[0] + node_pos_in_parent[2]) / 2, node_pos_in_parent[3])) + Vector2(0, 5), MARGIN_BOTTOM);
|
||||
FALLTHROUGH;
|
||||
case DRAG_MOVE:
|
||||
start = Vector2(node_pos_in_parent[2], Math::lerp(node_pos_in_parent[3], node_pos_in_parent[1], ratio));
|
||||
end = start - Vector2(control->get_margin(MARGIN_RIGHT), 0);
|
||||
@ -2639,6 +2642,7 @@ void CanvasItemEditor::_draw_control_helpers(Control *control) {
|
||||
case DRAG_TOP_LEFT:
|
||||
case DRAG_TOP_RIGHT:
|
||||
_draw_margin_at_position(control->get_size().height, parent_transform.xform(Vector2(node_pos_in_parent[2], (node_pos_in_parent[1] + node_pos_in_parent[3]) / 2)) + Vector2(5, 0), MARGIN_RIGHT);
|
||||
FALLTHROUGH;
|
||||
case DRAG_MOVE:
|
||||
start = Vector2(Math::lerp(node_pos_in_parent[0], node_pos_in_parent[2], ratio), node_pos_in_parent[1]);
|
||||
end = start - Vector2(0, control->get_margin(MARGIN_TOP));
|
||||
@ -2653,6 +2657,7 @@ void CanvasItemEditor::_draw_control_helpers(Control *control) {
|
||||
case DRAG_BOTTOM_LEFT:
|
||||
case DRAG_BOTTOM_RIGHT:
|
||||
_draw_margin_at_position(control->get_size().height, parent_transform.xform(Vector2(node_pos_in_parent[2], (node_pos_in_parent[1] + node_pos_in_parent[3]) / 2) + Vector2(5, 0)), MARGIN_RIGHT);
|
||||
FALLTHROUGH;
|
||||
case DRAG_MOVE:
|
||||
start = Vector2(Math::lerp(node_pos_in_parent[2], node_pos_in_parent[0], ratio), node_pos_in_parent[3]);
|
||||
end = start - Vector2(0, control->get_margin(MARGIN_BOTTOM));
|
||||
|
||||
@ -849,8 +849,7 @@ void ScriptEditor::_file_dialog_action(String p_file) {
|
||||
}
|
||||
file->close();
|
||||
memdelete(file);
|
||||
|
||||
// fallthrough to open the file.
|
||||
FALLTHROUGH;
|
||||
}
|
||||
case FILE_OPEN: {
|
||||
|
||||
|
||||
@ -997,7 +997,7 @@ void ScriptTextEditor::_edit_option(int p_op) {
|
||||
tx->set_line_as_breakpoint(line, dobreak);
|
||||
ScriptEditor::get_singleton()->get_debugger()->set_breakpoint(script->get_path(), line + 1, dobreak);
|
||||
}
|
||||
}
|
||||
} break;
|
||||
case DEBUG_GOTO_NEXT_BREAKPOINT: {
|
||||
|
||||
List<int> bpoints;
|
||||
|
||||
@ -1136,7 +1136,7 @@ void ProjectManager::_unhandled_input(const Ref<InputEvent> &p_ev) {
|
||||
|
||||
break;
|
||||
}
|
||||
// else fallthrough to key_down
|
||||
FALLTHROUGH;
|
||||
}
|
||||
case KEY_DOWN: {
|
||||
|
||||
|
||||
Reference in New Issue
Block a user