diff options
author | zack <zack@138bc75d-0d04-0410-961f-82ee72b054a4> | 2006-01-29 03:30:47 +0000 |
---|---|---|
committer | zack <zack@138bc75d-0d04-0410-961f-82ee72b054a4> | 2006-01-29 03:30:47 +0000 |
commit | 1d7525088416d1e29abc78ed78cf09ed2cb13782 (patch) | |
tree | d4a553c734fb691a872f7a7a3de2bf60d8a30c00 /gcc/c-opts.c | |
parent | 6614ba2d0669c07cf4ca63d81a8201d235e38bee (diff) | |
download | gcc-1d7525088416d1e29abc78ed78cf09ed2cb13782.tar.gz |
gcc:
* c.opt: Add -W(no-)overlength-strings.
* doc/invoke.texi: Document it.
* c-opts.c (c_common_handle_option): -pedantic implies
-Woverlength-strings, if not explicitly disabled already.
(c_common_post_options): -Woverlength-strings defaults to off, and
is always off for C++.
* c-common.c (fix_string_type): Issue warning about strings longer
than is portable only if warn_overlength_strings. Rearrange code
a little for clarity.
* configure.in: Check for -Wno-overlength-strings as well before
enabling -pedantic in stage 1.
* Makefile.in (STRICT2_WARN): Add -Wno-overlength-strings.
(gcc.o-warn, insn-automata.o-warn, build/gencondmd.o-warn): Delete.
* genconditions.c (write_header, write_one_condition)
(write_conditions, write_writer): Consolidate very long strings
that were broken up to fit in C89 portable limit. Don't use
printf when fputs will do.
gcc/testsuite:
* gcc.dg/Woverlength-strings.c
* gcc.dg/Woverlength-strings-pedantic-c89.c
* gcc.dg/Woverlength-strings-pedantic-c89-no.c
* gcc.dg/Woverlength-strings-pedantic-c99.c
* gcc.dg/Woverlength-strings-pedantic-c99-no.c: New tests.
==================================================================
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@110360 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/c-opts.c')
-rw-r--r-- | gcc/c-opts.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/gcc/c-opts.c b/gcc/c-opts.c index d2df8605ae2..8c5827a3959 100644 --- a/gcc/c-opts.c +++ b/gcc/c-opts.c @@ -893,6 +893,8 @@ c_common_handle_option (size_t scode, const char *arg, int value) cpp_opts->warn_endif_labels = 1; if (warn_pointer_sign == -1) warn_pointer_sign = 1; + if (warn_overlength_strings == -1) + warn_overlength_strings = 1; break; case OPT_print_objc_runtime_info: @@ -1018,6 +1020,12 @@ c_common_post_options (const char **pfilename) if (warn_pointer_sign == -1) warn_pointer_sign = 0; + /* -Woverlength-strings is off by default, but is enabled by -pedantic. + It is never enabled in C++, as the minimum limit is not normative + in that standard. */ + if (warn_overlength_strings == -1 || c_dialect_cxx ()) + warn_overlength_strings = 0; + /* Special format checking options don't work without -Wformat; warn if they are used. */ if (!warn_format) |