This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Warnings about rcs_id strings: let's settle this


"Kean Johnston" <jkj@sco.com> writes:

> I too agree. I've read the whole thread, and had some other
> discussions about the patch, and here's what I'm about to change it
> to do. I'd like a nod from Joe, Gaby and you Zack, at the very least
> before I go charging off into vim-land again.
>
> 1) -Wall will NOT turn on -Wunused-static-variable
> 2) -Wextra WILL turn on -Wunused-static-variable
> 3) -Wunused-static-variable disappears out of c-opts.c and stays only
>    in flags.h and toplev.c

This all looks good.

> And now, for the hard decision ... do I make the code check for const
> variables only? I vote not, if for no other reason than the original
> construct that spawned this thread was almost always written as
> static char *sccsid = "blah";.

Right, but to reiterate, GCC has warned about *that* construct since
forever; anyone using -Wall would have had problems already.

$ cat test.c
static char *sccsid = "blah";
$ gcc-2.95 -c -Wall test.c
test.c:1: warning: `sccsid' defined but not used

> By the way, why does THAT not emit a warning? You are assigning a
> const char * to a char *, thereby potentially losing the const-ness
> of it. I just tried with the head version and -Wall -Wextra
> -Wcast-qual didn't emit a warning.

The C compiler gives string literals type char[], not const char[],
unless -Wwrite-strings is used.  (Turning this on is encouraged, but
will probably produce a cascade of additions of const-qualifiers all
over the program.)

They do get type const char[] in C++.

zw


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]