aboutsummaryrefslogtreecommitdiff
path: root/gcc/ada/gcc-interface/trans.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/ada/gcc-interface/trans.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/ada/gcc-interface/trans.c')
-rw-r--r--gcc/ada/gcc-interface/trans.c5
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);
}