diff options
author | Jakub Jelinek <jakub@redhat.com> | 2019-03-08 11:46:39 +0100 |
---|---|---|
committer | Jakub Jelinek <jakub@gcc.gnu.org> | 2019-03-08 11:46:39 +0100 |
commit | 1db01ff96aa5ce5c4ad78313d342cf70f923b40c (patch) | |
tree | fae09df731b30ee508d5a37f95a71ca30d15912d /gcc/builtins.c | |
parent | 94ec37a909697bbf29db73278c77621ccdf60693 (diff) | |
download | gcc-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/builtins.c')
-rw-r--r-- | gcc/builtins.c | 18 |
1 files changed, 8 insertions, 10 deletions
diff --git a/gcc/builtins.c b/gcc/builtins.c index d216d6f..0910c72 100644 --- a/gcc/builtins.c +++ b/gcc/builtins.c @@ -760,15 +760,13 @@ c_strlen (tree src, int only_value, c_strlen_data *data, unsigned eltsize) runtime. */ if (eltoff < 0 || eltoff >= maxelts) { - /* Suppress multiple warnings for propagated constant strings. */ + /* Suppress multiple warnings for propagated constant strings. */ if (only_value != 2 - && !TREE_NO_WARNING (src)) - { - warning_at (loc, OPT_Warray_bounds, - "offset %qwi outside bounds of constant string", - eltoff); - TREE_NO_WARNING (src) = 1; - } + && !TREE_NO_WARNING (src) + && warning_at (loc, OPT_Warray_bounds, + "offset %qwi outside bounds of constant string", + eltoff)) + TREE_NO_WARNING (src) = 1; return NULL_TREE; } @@ -3099,7 +3097,7 @@ expand_builtin_strnlen (tree exp, rtx target, machine_mode target_mode) "%K%qD specified bound %E " "exceeds maximum object size %E", exp, func, bound, maxobjsize)) - TREE_NO_WARNING (exp) = true; + TREE_NO_WARNING (exp) = true; bool exact = true; if (!len || TREE_CODE (len) != INTEGER_CST) @@ -3158,7 +3156,7 @@ expand_builtin_strnlen (tree exp, rtx target, machine_mode target_mode) "%K%qD specified bound [%wu, %wu] " "exceeds maximum object size %E", exp, func, min.to_uhwi (), max.to_uhwi (), maxobjsize)) - TREE_NO_WARNING (exp) = true; + TREE_NO_WARNING (exp) = true; bool exact = true; if (!len || TREE_CODE (len) != INTEGER_CST) |