deprecated conversion from string constant to 'char *'

Tim Prince timothyprince@sbcglobal.net
Fri Jul 7 04:18:00 GMT 2006


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



More information about the Gcc-help mailing list