Commit d539b114 by Gabriel Dos Reis Committed by Gabriel Dos Reis

invoke.texi (-Write-strings): Document that it is enabled by default.

2006-02-12  Gabriel Dos Reis  <gdr@integrable-solutions.net>

        * doc/invoke.texi (-Write-strings): Document that it is
	enabled by
        default. 
        * c.opt (-Wwrite-strings): Declare variable
	warn_write_strings.
        Clarify documentation.
        * c-common.h (warn_write_strings): Remove.
        * c-common.c (warn_write_strings): Likewise.
        * c-opts.c (c_common_init_options): Enable -Wwrite-strings by
        default for C++.

testsuite/
2006-02-12  Gabriel Dos Reis  <gdr@integrable-solutions.net>

        * g++.dg/warn/no-write-strings.C: New test.
        * g++.dg/warn/write-strings.C: Likewise.
        * g++.dg/warn/write-strings-default.C: Likewise.

From-SVN: r110907
parent feb04780
2006-02-12 Gabriel Dos Reis <gdr@integrable-solutions.net>
* doc/invoke.texi (-Write-strings): Document that it is enabled by
default.
* c.opt (-Wwrite-strings): Declare variable warn_write_strings.
Clarify documentation.
* c-common.h (warn_write_strings): Remove.
* c-common.c (warn_write_strings): Likewise.
* c-opts.c (c_common_init_options): Enable -Wwrite-strings by
default for C++.
2006-02-12 Roger Sayle <roger@eyesopen.com> 2006-02-12 Roger Sayle <roger@eyesopen.com>
PR middle-end/25724 PR middle-end/25724
......
...@@ -265,11 +265,6 @@ int flag_no_asm; ...@@ -265,11 +265,6 @@ int flag_no_asm;
int flag_signed_bitfields = 1; int flag_signed_bitfields = 1;
/* Nonzero means warn about deprecated conversion from string constant to
`char *'. */
int warn_write_strings;
/* Warn about #pragma directives that are not recognized. */ /* Warn about #pragma directives that are not recognized. */
int warn_unknown_pragmas; /* Tri state variable. */ int warn_unknown_pragmas; /* Tri state variable. */
......
...@@ -406,11 +406,6 @@ extern int flag_const_strings; ...@@ -406,11 +406,6 @@ extern int flag_const_strings;
extern int flag_signed_bitfields; extern int flag_signed_bitfields;
/* Nonzero means warn about deprecated conversion from string constant to
`char *'. */
extern int warn_write_strings;
/* Warn about #pragma directives that are not recognized. */ /* Warn about #pragma directives that are not recognized. */
extern int warn_unknown_pragmas; /* Tri state variable. */ extern int warn_unknown_pragmas; /* Tri state variable. */
......
...@@ -227,6 +227,7 @@ c_common_init_options (unsigned int argc, const char **argv) ...@@ -227,6 +227,7 @@ c_common_init_options (unsigned int argc, const char **argv)
flag_exceptions = c_dialect_cxx (); flag_exceptions = c_dialect_cxx ();
warn_pointer_arith = c_dialect_cxx (); warn_pointer_arith = c_dialect_cxx ();
warn_write_strings = c_dialect_cxx();
deferred_opts = XNEWVEC (struct deferred_opt, argc); deferred_opts = XNEWVEC (struct deferred_opt, argc);
......
...@@ -420,8 +420,8 @@ C ObjC C++ ObjC++ ...@@ -420,8 +420,8 @@ C ObjC C++ ObjC++
Do not warn about using variadic macros when -pedantic Do not warn about using variadic macros when -pedantic
Wwrite-strings Wwrite-strings
C ObjC C++ ObjC++ C ObjC C++ ObjC++ Var(warn_write_strings)
Give strings the type \"array of char\" In C++, nonzero means warn about deprecated conversion from string literals to `char *'. In C, similar warning, except that the conversion is of course not deprecated by the ISO C standard.
Wpointer-sign Wpointer-sign
C ObjC Var(warn_pointer_sign) Init(-1) C ObjC Var(warn_pointer_sign) Init(-1)
......
...@@ -3065,7 +3065,8 @@ When compiling C, give string constants the type @code{const ...@@ -3065,7 +3065,8 @@ When compiling C, give string constants the type @code{const
char[@var{length}]} so that char[@var{length}]} so that
copying the address of one into a non-@code{const} @code{char *} copying the address of one into a non-@code{const} @code{char *}
pointer will get a warning; when compiling C++, warn about the pointer will get a warning; when compiling C++, warn about the
deprecated conversion from string constants to @code{char *}. deprecated conversion from string literals to @code{char *}. This
warning, by default, is enabled for C++ programs.
These warnings will help you find at These warnings will help you find at
compile time code that can try to write into a string constant, but compile time code that can try to write into a string constant, but
only if you have been very careful about using @code{const} in only if you have been very careful about using @code{const} in
......
2006-02-12 Gabriel Dos Reis <gdr@integrable-solutions.net>
* g++.dg/warn/no-write-strings.C: New test.
* g++.dg/warn/write-strings.C: Likewise.
* g++.dg/warn/write-strings-default.C: Likewise.
2006-02-12 Erik Edelmann <eedelman@gcc.gnu.org> 2006-02-12 Erik Edelmann <eedelman@gcc.gnu.org>
PR fortran/25806 PR fortran/25806
// { dg-do compile }
// { dg-options -Wno-write-strings }
int main()
{
char* p = "Asgaard";
}
// { dg-do compile }
// Test the default for -Wwrite-strings
int main()
{
char* p = "Asgaard"; // { dg-warning "warning:.*deprecated.*" }
}
// { dg-do compile }
// { dg-options -Wwrite-strings }
int main()
{
char* p = "Asgaard"; // { dg-warning "warning:.*deprecated.*" }
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment