On Wed, Nov 09, 2016 at 02:56:25PM +0100, Johannes Schindelin wrote:
> When comparing a value of type `enum todo_command` with a value that is
> outside the defined enum constants, clang greets the developer with this
> warning:
>
> comparison of constant 2 with expression of type
> 'const enum todo_command' is always true
>
> While this is arguably true *iff* the value was never cast from a
> free-form int, we should keep the cautious code in place.
>
> To shut up clang, we simply introduce an otherwise pointless enum constant
> and compare against that.
This does silence the warning.
I slightly prefer mine because:
1. It does not carry an implicit requirement that TODO_INVALID remain
the final enum value.
2. It also protects the range check against a negative enum value.
But this is code that is getting changed later by you anyway, and I do
not care that strongly.
-Peff