aboutsummaryrefslogtreecommitdiff
path: root/gcc/c
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2019-03-08 11:46:39 +0100
committerJakub Jelinek <jakub@gcc.gnu.org>2019-03-08 11:46:39 +0100
commit1db01ff96aa5ce5c4ad78313d342cf70f923b40c (patch)
treefae09df731b30ee508d5a37f95a71ca30d15912d /gcc/c
parent94ec37a909697bbf29db73278c77621ccdf60693 (diff)
downloadgcc-1db01ff96aa5ce5c4ad78313d342cf70f923b40c.zip
gcc-1db01ff96aa5ce5c4ad78313d342cf70f923b40c.tar.gz
gcc-1db01ff96aa5ce5c4ad78313d342cf70f923b40c.tar.bz2
re PR tree-optimization/89550 (Spurious array-bounds warning when using __PRETTY_FUNCTION__ as a string_view)
PR tree-optimization/89550 * builtins.c (c_strlen): Only set TREE_NO_WARNING if warning_at returned true. Formatting fixes. (expand_builtin_strnlen): Formatting fixes. * tree-vrp.c (vrp_prop::check_mem_ref): Only set TREE_NO_WARNING if warning_at returned true. * tree-cfg.c (pass_warn_function_return::execute): Likewise. c-family/ * c-common.c (c_common_truthvalue_conversion): Only set TREE_NO_WARNING if warning_at returned true. * c-warn.c (overflow_warning, warn_logical_operator): Likewise. c/ * c-decl.c (finish_function): Only set TREE_NO_WARNING if warning_at returned true. (c_write_global_declarations_1): Only set TREE_NO_WARNING if pedwarn or warning returned true. cp/ * semantics.c (maybe_convert_cond): Only set TREE_NO_WARNING if warning_at returned true. * decl2.c (c_parse_final_cleanups): Likewise. * typeck.c (convert_for_assignment): Likewise. * decl.c (finish_function): Likewise. From-SVN: r269485
Diffstat (limited to 'gcc/c')
-rw-r--r--gcc/c/ChangeLog8
-rw-r--r--gcc/c/c-decl.c22
2 files changed, 19 insertions, 11 deletions
diff --git a/gcc/c/ChangeLog b/gcc/c/ChangeLog
index ec60ed3..b59be5e 100644
--- a/gcc/c/ChangeLog
+++ b/gcc/c/ChangeLog
@@ -1,3 +1,11 @@
+2019-03-08 Jakub Jelinek <jakub@redhat.com>
+
+ PR tree-optimization/89550
+ * c-decl.c (finish_function): Only set TREE_NO_WARNING if warning_at
+ returned true.
+ (c_write_global_declarations_1): Only set TREE_NO_WARNING if pedwarn
+ or warning returned true.
+
2019-02-28 Jakub Jelinek <jakub@redhat.com>
PR c/89525
diff --git a/gcc/c/c-decl.c b/gcc/c/c-decl.c
index 69c04d5..32ec183 100644
--- a/gcc/c/c-decl.c
+++ b/gcc/c/c-decl.c
@@ -9664,12 +9664,10 @@ finish_function (void)
&& !C_FUNCTION_IMPLICIT_INT (fndecl)
/* Normally, with -Wreturn-type, flow will complain, but we might
optimize out static functions. */
- && !TREE_PUBLIC (fndecl))
- {
- warning (OPT_Wreturn_type,
- "no return statement in function returning non-void");
- TREE_NO_WARNING (fndecl) = 1;
- }
+ && !TREE_PUBLIC (fndecl)
+ && warning (OPT_Wreturn_type,
+ "no return statement in function returning non-void"))
+ TREE_NO_WARNING (fndecl) = 1;
/* Complain about parameters that are only set, but never otherwise used. */
if (warn_unused_but_set_parameter)
@@ -11486,17 +11484,19 @@ c_write_global_declarations_1 (tree globals)
{
if (C_DECL_USED (decl))
{
- pedwarn (input_location, 0, "%q+F used but never defined", decl);
- TREE_NO_WARNING (decl) = 1;
+ if (pedwarn (input_location, 0, "%q+F used but never defined",
+ decl))
+ TREE_NO_WARNING (decl) = 1;
}
/* For -Wunused-function warn about unused static prototypes. */
else if (warn_unused_function
&& ! DECL_ARTIFICIAL (decl)
&& ! TREE_NO_WARNING (decl))
{
- warning (OPT_Wunused_function,
- "%q+F declared %<static%> but never defined", decl);
- TREE_NO_WARNING (decl) = 1;
+ if (warning (OPT_Wunused_function,
+ "%q+F declared %<static%> but never defined",
+ decl))
+ TREE_NO_WARNING (decl) = 1;
}
}