From: jakub Date: Sat, 28 Mar 2009 17:23:08 +0000 (+0000) Subject: PR c++/39554 X-Git-Url: http://git.sourceforge.jp/view?p=pf3gnuchains%2Fgcc-fork.git;a=commitdiff_plain;h=bf4a1edf6c1fdeef7ce6367630e86239331c8d0b PR c++/39554 * opts.c (warning_disallowed_functions, warn_disallowed_functions, warn_if_disallowed_function_p): Removed. (common_handle_option): Don't handle OPT_Wdisallowed_function_list_. * c-parser.c (c_parser_postfix_expression_after_primary): Don't call warning_if_disallowed_function_p. * flags.h (warn_if_disallowed_function_p, warn_disallowed_functions): Removed. * common.opt (Wdisallowed-function-list=): Removed. * doc/invoke.texi (-Wdisallowed-function-list=): Removed. * parser.c (cp_parser_postfix_expression): Don't call warning_if_disallowed_function_p. * gcc.dg/wdisallowed-functions-1.c: Removed. * gcc.dg/wdisallowed-functions-2.c: Removed. * gcc.dg/wdisallowed-functions-3.c: Removed. * g++.dg/warn/Wdisallowed-functions-1.C: Removed. * g++.dg/warn/Wdisallowed-functions-2.C: Removed. * g++.dg/warn/Wdisallowed-functions-3.C: Removed. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@145198 138bc75d-0d04-0410-961f-82ee72b054a4 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 8dfd7e918ca..012e0a36fd0 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,16 @@ +2009-03-28 Jakub Jelinek + + PR c++/39554 + * opts.c (warning_disallowed_functions, warn_disallowed_functions, + warn_if_disallowed_function_p): Removed. + (common_handle_option): Don't handle OPT_Wdisallowed_function_list_. + * c-parser.c (c_parser_postfix_expression_after_primary): Don't call + warning_if_disallowed_function_p. + * flags.h (warn_if_disallowed_function_p, + warn_disallowed_functions): Removed. + * common.opt (Wdisallowed-function-list=): Removed. + * doc/invoke.texi (-Wdisallowed-function-list=): Removed. + 2009-03-28 Richard Guenther PR tree-optimization/38723 diff --git a/gcc/c-parser.c b/gcc/c-parser.c index ea0036c0ba2..f910128de3f 100644 --- a/gcc/c-parser.c +++ b/gcc/c-parser.c @@ -5584,8 +5584,6 @@ c_parser_postfix_expression_after_primary (c_parser *parser, "expected %<)%>"); expr.value = build_function_call (expr.value, exprlist); expr.original_code = ERROR_MARK; - if (warn_disallowed_functions) - warn_if_disallowed_function_p (expr.value); break; case CPP_DOT: /* Structure element reference. */ diff --git a/gcc/common.opt b/gcc/common.opt index b2807f06033..023d773586a 100644 --- a/gcc/common.opt +++ b/gcc/common.opt @@ -94,10 +94,6 @@ Wdisabled-optimization Common Var(warn_disabled_optimization) Warning Warn when an optimization pass is disabled -Wdisallowed-function-list= -Common RejectNegative Joined Warning -Warn on calls to these functions - Werror Common Var(warnings_are_errors) Treat all warnings as errors diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 124a3e95651..449fb93c1be 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,9 @@ +2009-03-28 Jakub Jelinek + + PR c++/39554 + * parser.c (cp_parser_postfix_expression): Don't call + warning_if_disallowed_function_p. + 2009-03-27 Jan Hubicka * except.c (choose_personality_routine): Set terminate_node to abort diff --git a/gcc/cp/parser.c b/gcc/cp/parser.c index 63ac0709ebf..bbd89d19c72 100644 --- a/gcc/cp/parser.c +++ b/gcc/cp/parser.c @@ -4823,9 +4823,6 @@ cp_parser_postfix_expression (cp_parser *parser, bool address_p, bool cast_p, koenig_p, tf_warning_or_error); - if (warn_disallowed_functions) - warn_if_disallowed_function_p (postfix_expression); - /* The POSTFIX_EXPRESSION is certainly no longer an id. */ idk = CP_ID_KIND_NONE; } diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi index 764104c18b6..4e2d93139b5 100644 --- a/gcc/doc/invoke.texi +++ b/gcc/doc/invoke.texi @@ -232,7 +232,6 @@ Objective-C and Objective-C++ Dialects}. -Wchar-subscripts -Wclobbered -Wcomment @gol -Wconversion -Wcoverage-mismatch -Wno-deprecated @gol -Wno-deprecated-declarations -Wdisabled-optimization @gol --Wdisallowed-function-list=@var{sym},@var{sym},@dots{} @gol -Wno-div-by-zero -Wempty-body -Wenum-compare -Wno-endif-labels @gol -Werror -Werror=* @gol -Wfatal-errors -Wfloat-equal -Wformat -Wformat=2 @gol @@ -4188,13 +4187,6 @@ minimum maximum, so we do not diagnose overlength strings in C++@. This option is implied by @option{-pedantic}, and can be disabled with @option{-Wno-overlength-strings}. - -@item -Wdisallowed-function-list=@var{sym},@var{sym},@dots{} -@opindex Wdisallowed-function-list - -If any of @var{sym} is called, GCC will issue a warning. This can be useful -in enforcing coding conventions that ban calls to certain functions, for -example, @code{alloca}, @code{malloc}, etc. @end table @node Debugging Options diff --git a/gcc/flags.h b/gcc/flags.h index 6bc5dd7b0cc..e406bf17914 100644 --- a/gcc/flags.h +++ b/gcc/flags.h @@ -1,6 +1,6 @@ /* Compilation switch flag definitions for GCC. Copyright (C) 1987, 1988, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2002, - 2003, 2004, 2005, 2006, 2007, 2008 + 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc. This file is part of GCC. @@ -310,13 +310,6 @@ extern enum stack_check_type flag_stack_check; instrumentation. */ extern bool flag_instrument_functions_exclude_p (tree fndecl); -/* Emit warning if the function call is disallowed under - -Wdisallowed-function-list=... */ -extern void warn_if_disallowed_function_p (const_tree fncall); - -/* True, if the -Wdisallowed-function-list=... option has been specified. */ -extern bool warn_disallowed_functions; - /* True if the given mode has a NaN representation and the treatment of NaN operands is important. Certain optimizations, such as folding x * 0 into 0, are not correct for NaN operands, and are normally diff --git a/gcc/opts.c b/gcc/opts.c index 2d5184fcb0e..90f34df1dec 100644 --- a/gcc/opts.c +++ b/gcc/opts.c @@ -368,12 +368,6 @@ DEF_VEC_ALLOC_P(const_char_p,heap); static VEC(const_char_p,heap) *ignored_options; -/* Function calls disallowed under -Wdisallowed-function-list=... */ -static VEC(char_p,heap) *warning_disallowed_functions; - -/* If -Wdisallowed-function-list=... */ -bool warn_disallowed_functions = false; - /* Input file names. */ const char **in_fnames; unsigned num_in_fnames; @@ -741,38 +735,6 @@ flag_instrument_functions_exclude_p (tree fndecl) } -/* Return whether this function call is disallowed. */ -void -warn_if_disallowed_function_p (const_tree exp) -{ - if (TREE_CODE (exp) == CALL_EXPR - && VEC_length (char_p, warning_disallowed_functions) > 0) - { - int i; - char *s; - tree fndecl = get_callee_fndecl (exp); - const char *fnname; - - if (fndecl == NULL) - return; - - fnname = get_name (fndecl); - if (fnname == NULL) - return; - - for (i = 0; VEC_iterate (char_p, warning_disallowed_functions, i, s); - ++i) - { - if (strcmp (fnname, s) == 0) - { - warning (OPT_Wdisallowed_function_list_, - "disallowed call to %qs", fnname); - break; - } - } - } -} - /* Decode and handle the vector of command line options. LANG_MASK contains has a single bit set representing the current language. */ @@ -1635,12 +1597,6 @@ common_handle_option (size_t scode, const char *arg, int value, set_Wextra (value); break; - case OPT_Wdisallowed_function_list_: - warn_disallowed_functions = true; - add_comma_separated_to_vector - (&warning_disallowed_functions, arg); - break; - case OPT_Werror_: enable_warning_as_error (arg, value, lang_mask); break; diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 09a33ef8441..9a6d50a4c53 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,13 @@ +2009-03-28 Jakub Jelinek + + PR c++/39554 + * gcc.dg/wdisallowed-functions-1.c: Removed. + * gcc.dg/wdisallowed-functions-2.c: Removed. + * gcc.dg/wdisallowed-functions-3.c: Removed. + * g++.dg/warn/Wdisallowed-functions-1.C: Removed. + * g++.dg/warn/Wdisallowed-functions-2.C: Removed. + * g++.dg/warn/Wdisallowed-functions-3.C: Removed. + 2009-03-28 Richard Guenther PR tree-optimization/38723 diff --git a/gcc/testsuite/g++.dg/warn/Wdisallowed-functions-1.C b/gcc/testsuite/g++.dg/warn/Wdisallowed-functions-1.C deleted file mode 100644 index 39760950d69..00000000000 --- a/gcc/testsuite/g++.dg/warn/Wdisallowed-functions-1.C +++ /dev/null @@ -1,7 +0,0 @@ -/* { dg-do compile } */ -/* { dg-options "-Wdisallowed-function-list=foobar" } */ - -int foobar (int i) -{ - return (i * 5); -} diff --git a/gcc/testsuite/g++.dg/warn/Wdisallowed-functions-2.C b/gcc/testsuite/g++.dg/warn/Wdisallowed-functions-2.C deleted file mode 100644 index ca5aab0e50d..00000000000 --- a/gcc/testsuite/g++.dg/warn/Wdisallowed-functions-2.C +++ /dev/null @@ -1,12 +0,0 @@ -/* { dg-do compile } */ -/* { dg-options "-Wdisallowed-function-list=foo,foobar,bar,foobar" } */ - -int foobar (int i) -{ - return (i * 5); -} - -int foobar1 (int i) -{ - return foobar (i); /* { dg-warning "disallowed call to 'foobar'" } */ -} diff --git a/gcc/testsuite/g++.dg/warn/Wdisallowed-functions-3.C b/gcc/testsuite/g++.dg/warn/Wdisallowed-functions-3.C deleted file mode 100644 index 3ecfb0c2264..00000000000 --- a/gcc/testsuite/g++.dg/warn/Wdisallowed-functions-3.C +++ /dev/null @@ -1,10 +0,0 @@ -// PR c++/39554 -// { dg-do compile } -// { dg-options "-Wdisallowed-function-list=bar" } - -void -foo (void (*p) (), void (*bar) ()) -{ - p (); - bar (); -} diff --git a/gcc/testsuite/gcc.dg/wdisallowed-functions-1.c b/gcc/testsuite/gcc.dg/wdisallowed-functions-1.c deleted file mode 100644 index 39760950d69..00000000000 --- a/gcc/testsuite/gcc.dg/wdisallowed-functions-1.c +++ /dev/null @@ -1,7 +0,0 @@ -/* { dg-do compile } */ -/* { dg-options "-Wdisallowed-function-list=foobar" } */ - -int foobar (int i) -{ - return (i * 5); -} diff --git a/gcc/testsuite/gcc.dg/wdisallowed-functions-2.c b/gcc/testsuite/gcc.dg/wdisallowed-functions-2.c deleted file mode 100644 index ca5aab0e50d..00000000000 --- a/gcc/testsuite/gcc.dg/wdisallowed-functions-2.c +++ /dev/null @@ -1,12 +0,0 @@ -/* { dg-do compile } */ -/* { dg-options "-Wdisallowed-function-list=foo,foobar,bar,foobar" } */ - -int foobar (int i) -{ - return (i * 5); -} - -int foobar1 (int i) -{ - return foobar (i); /* { dg-warning "disallowed call to 'foobar'" } */ -} diff --git a/gcc/testsuite/gcc.dg/wdisallowed-functions-3.c b/gcc/testsuite/gcc.dg/wdisallowed-functions-3.c deleted file mode 100644 index 5b8b31bdfc9..00000000000 --- a/gcc/testsuite/gcc.dg/wdisallowed-functions-3.c +++ /dev/null @@ -1,10 +0,0 @@ -/* PR c++/39554 */ -/* { dg-do compile } */ -/* { dg-options "-Wdisallowed-function-list=bar" } */ - -void -foo (void (*p) (void), void (*bar) (void)) -{ - p (); - bar (); -}