re PR c++/39554 (-Wdisallowed-function-list fails when #including <algorithm>)

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.

From-SVN: r145200
This commit is contained in:
Jakub Jelinek 2009-03-28 18:28:45 +01:00 committed by Jakub Jelinek
parent 4a07c6b1fd
commit dfb530f6d2
15 changed files with 30 additions and 127 deletions

View File

@ -1,3 +1,16 @@
2009-03-28 Jakub Jelinek <jakub@redhat.com>
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-27 Mark Mitchell <mark@codesourcery.com>
* DEV-PHASE: Mark "prerelease".

View File

@ -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. */

View File

@ -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

View File

@ -1,3 +1,9 @@
2009-03-28 Jakub Jelinek <jakub@redhat.com>
PR c++/39554
* parser.c (cp_parser_postfix_expression): Don't call
warning_if_disallowed_function_p.
2009-03-27 Andrew Pinski <andrew_pinski@playstation.sony.com>
PR c++/38638

View File

@ -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;
}

View File

@ -233,7 +233,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
@ -4189,13 +4188,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

View File

@ -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

View File

@ -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;

View File

@ -1,3 +1,13 @@
2009-03-28 Jakub Jelinek <jakub@redhat.com>
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-27 Xinliang David Li <davidxl@google.com>
PR tree-optimization/39557

View File

@ -1,7 +0,0 @@
/* { dg-do compile } */
/* { dg-options "-Wdisallowed-function-list=foobar" } */
int foobar (int i)
{
return (i * 5);
}

View File

@ -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'" } */
}

View File

@ -1,10 +0,0 @@
// PR c++/39554
// { dg-do compile }
// { dg-options "-Wdisallowed-function-list=bar" }
void
foo (void (*p) (), void (*bar) ())
{
p ();
bar ();
}

View File

@ -1,7 +0,0 @@
/* { dg-do compile } */
/* { dg-options "-Wdisallowed-function-list=foobar" } */
int foobar (int i)
{
return (i * 5);
}

View File

@ -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'" } */
}

View File

@ -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 ();
}