Matthew Dillon wrote:

>:
>:In my opinion, the use of "-Wcast-qual" is bogus.  Often the whole
>:point of a cast is to remove a qualifier such as const.  It's one
>:thing to warn when that's done implicitly, and quite another thing
>:to warn when the programmer has clearly expressed his intent through
>:the use of a cast.
>
>     There are only a few cases where cast-qual is bogus.  99% of
>     the warnings it generated were quite real.  Maybe not bugs, but
>     definitely programming by misadventure.  Volatile and const are
>     only going to become more important as we get deeper into the
>     SMP issues.  Especially volatile. cast-qual is necessary to keep
>     people from making bozo mistakes.

I would find -Wcast-qual tolerable if it behaved just a little bit
differently.  It should allow without complaint explicit casts which
change _only_ the constness.  For example, casting from "const char
*" to "char *" explicitly would be OK.  But casting from, say, "const
char *" to "void *" would still produce a warning.  This would make it
possible to get rid of the warnings in those cases where it made sense
to cast away const (e.g., dealing with bad but standard interfaces).

The above is more or less how C++'s "const_cast<T>(x)" construct
works.

John
---
  John Polstra                                               j...@polstra.com
  John D. Polstra & Co., Inc.                        Seattle, Washington USA
  "Nobody ever went broke underestimating the taste of the American public."
                                                            -- H. L. Mencken


To Unsubscribe: send mail to majord...@freebsd.org
with "unsubscribe freebsd-current" in the body of the message

Reply via email to