diff options
author | Jakub Jelinek <jakub@redhat.com> | 2009-03-26 20:27:17 +0100 |
---|---|---|
committer | Jakub Jelinek <jakub@gcc.gnu.org> | 2009-03-26 20:27:17 +0100 |
commit | 5a59b39e8a98c07d4e6a7a77bf35f8ab93b2e560 (patch) | |
tree | dc79a6a82c49de520ee04b9143b1f107c22fa275 /gcc/opts.c | |
parent | d5f89b53026d0705832786606216a7b3a08c4478 (diff) | |
download | gcc-5a59b39e8a98c07d4e6a7a77bf35f8ab93b2e560.zip gcc-5a59b39e8a98c07d4e6a7a77bf35f8ab93b2e560.tar.gz gcc-5a59b39e8a98c07d4e6a7a77bf35f8ab93b2e560.tar.bz2 |
re PR c++/39554 (-Wdisallowed-function-list fails when #including <algorithm>)
PR c++/39554
* opts.c (warn_if_disallowed_function_p): Don't assume
get_callee_fndecl must return non-NULL.
* gcc.dg/wdisallowed-functions-3.c: New test.
* g++.dg/warn/Wdisallowed-functions-3.C: New test.
From-SVN: r145094
Diffstat (limited to 'gcc/opts.c')
-rw-r--r-- | gcc/opts.c | 14 |
1 files changed, 11 insertions, 3 deletions
@@ -745,13 +745,21 @@ flag_instrument_functions_exclude_p (tree fndecl) void warn_if_disallowed_function_p (const_tree exp) { - if (TREE_CODE(exp) == CALL_EXPR + if (TREE_CODE (exp) == CALL_EXPR && VEC_length (char_p, warning_disallowed_functions) > 0) { int i; char *s; - const char *fnname = - IDENTIFIER_POINTER (DECL_NAME (get_callee_fndecl (exp))); + 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) { |