diff options
author | Jakub Jelinek <jakub@redhat.com> | 2015-12-08 14:26:35 +0100 |
---|---|---|
committer | Jakub Jelinek <jakub@gcc.gnu.org> | 2015-12-08 14:26:35 +0100 |
commit | 63bbf46d5f44f34a54f4e9cff62377516633fb7f (patch) | |
tree | 0e888f7e79d4144fe4ea4fc640d979765f209cc9 /gcc/ada/gcc-interface/trans.c | |
parent | 091db7b0af49a12ecb6fea88c0e4443444ee82bd (diff) | |
download | gcc-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/ada/gcc-interface/trans.c')
-rw-r--r-- | gcc/ada/gcc-interface/trans.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/gcc/ada/gcc-interface/trans.c b/gcc/ada/gcc-interface/trans.c index 143d214..d565854 100644 --- a/gcc/ada/gcc-interface/trans.c +++ b/gcc/ada/gcc-interface/trans.c @@ -1441,6 +1441,7 @@ Pragma_to_gnu (Node_Id gnat_node) /* This is the same implementation as in the C family of compilers. */ const unsigned int lang_mask = CL_Ada | CL_COMMON; + const char *arg = NULL; if (Present (gnat_expr)) { tree gnu_expr = gnat_to_gnu (gnat_expr); @@ -1464,12 +1465,14 @@ Pragma_to_gnu (Node_Id gnat_node) post_error ("?-W switch not valid for Ada", gnat_node); break; } + if (cl_options[option_index].flags & CL_JOINED) + arg = option_string + 1 + cl_options[option_index].opt_len; } else option_index = 0; set_default_handlers (&handlers); - control_warning_option (option_index, (int) kind, imply, location, + control_warning_option (option_index, (int) kind, arg, imply, location, lang_mask, &handlers, &global_options, &global_options_set, global_dc); } |