Subject: Re: "comparison is always true" and -fshort-enums
To: Ben Harris <bjh21@netbsd.org>
From: Martin Husemann <martin@duskware.de>
List: tech-toolchain
Date: 12/23/2001 11:10:51
> This warning is correct (the enum is being represented as an unsigned
> char), but the test is useful on other architectures, so I'd rather not
> remove it.

Just out of curiosity, can you elaborate how/why the test is usefull on other
archs? Besides some (IMHO) realy bad hacks I can't imagine why this if would
make sense.

The only thing that springs to my mind is checking for arbitrary ints passed
insted of enum values, which I would test via a double cast in this case:

  if ((unsigned int)arg > (unsigned int)BAZ)	/* arg not in enum foo */

But basically I would consider such calls illegal.


Martin