Comparing the first element of an enum and a pointer

I just had a very stupid bug in a lighttpd2 feature I was working on, it looked like this:

```c linenums=1 typedef enum { S_DEAD, S_START // } con_state;

typedef struct { con_state state; // } con;

void foo(con c) { if (S_DEAD == c) { / … */ } }

I obviously wanted to check `c->state`, not `c` - and I didn't even get
a warning from my compiler (neither gcc nor clang). Comparing with
`S_START` resulted in this compiler warning:

```console
[...] warning: comparison between pointer and integer [enabled by default]

My guess is that it doesn’t warn when you compare pointers with 0, and S_DEAD as the first value in the enum corresponds to the number 0. Comparing with S_START is similar to comparing with 1.

It should still print a warning of course - an enum member is obviously not a pointer.