Hi Justin,

see lower ...

Justin Pryzby wrote:
Package: gcc-4.0
Version: 4.0.2-4
Severity: wishlist
Tags: upstream

gcc will warn on something like

  char c;
  // ...
  if (c>256) {
  // warning: comparison is always false due to limited range of data type
  // ...
  }

Please consider also warning on things like:


I would imagine this below:


  if (0==c && 1==c)

isn't a good idea, because it would break symmetry with custom operator==() behaviour.

eg, if I did

class MySillyClass { ... };

inline bool operator==(MySillyClass const& a, int b)
{
   return (b == 0 || b == 1);
}


then:

char c;
if (c == 0 && c == 1)  // WARNING

MySillyClass d;
if (d == 0 && d == 1) // should NOT warn


then, if i did:

template <class T>
bool test(T x)
{
   return (x == 0 && x == 1);
}

test() would warn on some types and not others.  That would be annoying!


right?
thanks for the brain snack,
Paul


--
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Reply via email to