mirror of
https://github.com/neovim/neovim.git
synced 2025-09-06 11:28:22 +00:00
docs: use abort()
for unreachable default:
case in C
Problem: The style guide currently recommends having a `default:` case for switch statements that are not conditional on an enumerated value. Additionally, it recommends using `assert(false)` if `default:` is unreachable. This is problematic because `assert()` only runs on debug builds, which may lead to confusing breakages in release builds. Moreover, this suggestion is followed nowhere in the C code and `abort()` is used everywhere instead. Solution: Suggest using `abort()` instead of `assert(false)`, that way the program always terminates if a logically unreachable case is reached.
This commit is contained in:
@@ -846,7 +846,7 @@ Annotate non-trivial fall-through between cases.
|
|||||||
If not conditional on an enumerated value, switch statements should always
|
If not conditional on an enumerated value, switch statements should always
|
||||||
have a `default` case (in the case of an enumerated value, the compiler will
|
have a `default` case (in the case of an enumerated value, the compiler will
|
||||||
warn you if any values are not handled). If the default case should never
|
warn you if any values are not handled). If the default case should never
|
||||||
execute, simply `assert`: >c
|
execute, simply use `abort()`: >c
|
||||||
|
|
||||||
switch (var) {
|
switch (var) {
|
||||||
case 0:
|
case 0:
|
||||||
@@ -856,7 +856,7 @@ execute, simply `assert`: >c
|
|||||||
...
|
...
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
assert(false);
|
abort();
|
||||||
}
|
}
|
||||||
|
|
||||||
Return Values ~
|
Return Values ~
|
||||||
|
Reference in New Issue
Block a user