This is the mail archive of the
gcc-help@gcc.gnu.org
mailing list for the GCC project.
Re: deprecated conversion from string constant to 'char *'
- From: Tim Prince <timothyprince at sbcglobal dot net>
- To: Ian Lance Taylor <iant at google dot com>
- Cc: Timothy C Prince <tprince at myrealbox dot com>, gcc-help at gcc dot gnu dot org
- Date: Thu, 06 Jul 2006 21:18:44 -0700
- Subject: Re: deprecated conversion from string constant to 'char *'
- References: <1152231213.c7d6bd1ctprince@myrealbox.com> <m3ejwy8dlv.fsf@localhost.localdomain>
- Reply-to: tprince at myrealbox dot com
Ian Lance Taylor wrote:
"Timothy C Prince" <tprince@myrealbox.com> writes:
g++ 4.2 rejects a quoted string constant, where the function prototype has char *. It says warning, but the warning is fatal, even without -Werror. -fpermissive doesn't let it pass.
info g++ lists an option -fconst-strings, but that option has been removed.
What is expected as a replacement for current source code with 1000's of string constants, which up to now worked with char * prototype?
This is what I get:
cat foo.cc
extern void foo(char*);
void bar() { foo("Hello"); }
g++ -c foo.cc
foo.cc: In function ‘void bar()’:
foo.cc:2: warning: deprecated conversion from string constant to ‘char*’'
echo $?
0
Looks like a warning to me, not an error. Please give a small source
code example and the command line you are using.
Ian
Ian,
Even in your example, gcc stops without making a .o file. I did find
that correcting __all__ the relevant prototypes to 'const char *' fixed
my problem. I had missed one tucked away in a long list.
Another compiler which I use frequently, which claims a high degree of
gcc compatibility, is unable to produce any warning.
Thanks,
Tim