aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimon Baldwin <simonb@google.com>2008-04-26 16:59:38 +0000
committerSimon Baldwin <simonb@gcc.gnu.org>2008-04-26 16:59:38 +0000
commit6bfb7f1068b1ad3d3bacb4fac704994ce1b9eb9f (patch)
treebe42a70c57c4ba202b13aeb1fbbd2c1fffeb1f0f
parent73e8165a686cc74e51e53d28770f6064297e4c80 (diff)
downloadgcc-6bfb7f1068b1ad3d3bacb4fac704994ce1b9eb9f.zip
gcc-6bfb7f1068b1ad3d3bacb4fac704994ce1b9eb9f.tar.gz
gcc-6bfb7f1068b1ad3d3bacb4fac704994ce1b9eb9f.tar.bz2
re PR c++/35652 (offset warning should be given in the front-end)
PR c/35652 * builtins.c (c_strlen): Suppressed multiple warnings that can occur with propagated string constants. From-SVN: r134714
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/builtins.c7
2 files changed, 12 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 843a2e2..6453c50 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2008-04-26 Simon Baldwin <simonb@google.com>
+
+ PR c/35652
+ * builtins.c (c_strlen): Suppressed multiple warnings that can occur
+ with propagated string constants.
+
2008-04-26 Uros Bizjak <ubizjak@gmail.com>
* config/i386/i386.md (fix_trunc<mode>_i387_fisttp_with_temp): Use 'X'
diff --git a/gcc/builtins.c b/gcc/builtins.c
index 765294b..321032d 100644
--- a/gcc/builtins.c
+++ b/gcc/builtins.c
@@ -447,7 +447,12 @@ c_strlen (tree src, int only_value)
runtime. */
if (offset < 0 || offset > max)
{
- warning (0, "offset outside bounds of constant string");
+ /* Suppress multiple warnings for propagated constant strings. */
+ if (! TREE_NO_WARNING (src))
+ {
+ warning (0, "offset outside bounds of constant string");
+ TREE_NO_WARNING (src) = 1;
+ }
return NULL_TREE;
}