aboutsummaryrefslogtreecommitdiff
path: root/gcc/opts.c
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2015-12-08 14:26:35 +0100
committerJakub Jelinek <jakub@gcc.gnu.org>2015-12-08 14:26:35 +0100
commit63bbf46d5f44f34a54f4e9cff62377516633fb7f (patch)
tree0e888f7e79d4144fe4ea4fc640d979765f209cc9 /gcc/opts.c
parent091db7b0af49a12ecb6fea88c0e4443444ee82bd (diff)
downloadgcc-63bbf46d5f44f34a54f4e9cff62377516633fb7f.zip
gcc-63bbf46d5f44f34a54f4e9cff62377516633fb7f.tar.gz
gcc-63bbf46d5f44f34a54f4e9cff62377516633fb7f.tar.bz2
re PR c/48088 (-Werror=frame-larger-than=100 does not work as expected)
PR c/48088 PR c/68657 * common.opt (Wframe-larger-than=): Add Warning. * opts.h (control_warning_option): Add ARG argument. * opts-common.c (cmdline_handle_error): New function. (read_cmdline_option): Use it. (control_warning_option): Likewise. Add ARG argument. If non-NULL, decode it if needed and pass through to handle_generated_option. Handle CLVC_ENUM like CLVC_BOOLEAN. * opts.c (common_handle_option): Adjust control_warning_option caller. (enable_warning_as_error): Likewise. c-family/ * c.opt (Wfloat-conversion, Wsign-conversion): Add Warning. * c-pragma.c (handle_pragma_diagnostic): Adjust control_warning_option caller. ada/ * gcc-interface/trans.c (Pragma_to_gnu): Adjust control_warning_option caller. testsuite/ * c-c++-common/pr68657-1.c: New test. * c-c++-common/pr68657-2.c: New test. * c-c++-common/pr68657-3.c: New test. * gcc.dg/cpp/warn-normalized-3.c: Use -Werror=normalized=nfc instead of -Werror=normalized= in dg-options. From-SVN: r231406
Diffstat (limited to 'gcc/opts.c')
-rw-r--r--gcc/opts.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/gcc/opts.c b/gcc/opts.c
index 874c84f..3d25f98 100644
--- a/gcc/opts.c
+++ b/gcc/opts.c
@@ -2114,7 +2114,7 @@ common_handle_option (struct gcc_options *opts,
case OPT_pedantic_errors:
dc->pedantic_errors = 1;
- control_warning_option (OPT_Wpedantic, DK_ERROR, value,
+ control_warning_option (OPT_Wpedantic, DK_ERROR, NULL, value,
loc, lang_mask,
handlers, opts, opts_set,
dc);
@@ -2437,8 +2437,11 @@ enable_warning_as_error (const char *arg, int value, unsigned int lang_mask,
else
{
const diagnostic_t kind = value ? DK_ERROR : DK_WARNING;
+ const char *arg = NULL;
- control_warning_option (option_index, (int) kind, value,
+ if (cl_options[option_index].flags & CL_JOINED)
+ arg = new_option + cl_options[option_index].opt_len;
+ control_warning_option (option_index, (int) kind, arg, value,
loc, lang_mask,
handlers, opts, opts_set, dc);
}