c-common.c (check_format_info): Warn if format string isn't a string literal.
authorKen Raeburn <raeburn@mit.edu>
Sun, 10 Oct 1999 05:17:41 +0000 (05:17 +0000)
committerJeff Law <law@gcc.gnu.org>
Sun, 10 Oct 1999 05:17:41 +0000 (23:17 -0600)
        * c-common.c (check_format_info): Warn if format string isn't a
        string literal.

From-SVN: r29881

gcc/ChangeLog
gcc/c-common.c

index 2257112..da2340a 100644 (file)
@@ -1,3 +1,8 @@
+Sat Oct  9 23:16:01 1999  Ken Raeburn  <raeburn@mit.edu>
+
+       * c-common.c (check_format_info): Warn if format string isn't a
+       string literal.
+
 Sat Oct  9 23:04:02 1999  Jonathan Larmour  <jlarmour@cygnus.co.uk>
 
        * configure.in (arm*-*-*): Don't let autoconf remove brackets
index afdea93..3e9d962 100644 (file)
@@ -1488,10 +1488,20 @@ check_format_info (info, params)
       return;
     }
   if (TREE_CODE (format_tree) != ADDR_EXPR)
-    return;
+    {
+      /* The user may get multiple warnings if the supplied argument
+        isn't even a string pointer.  */
+      warning ("format not a string literal, argument types not checked");
+      return;
+    }
   format_tree = TREE_OPERAND (format_tree, 0);
   if (TREE_CODE (format_tree) != STRING_CST)
-    return;
+    {
+      /* The user may get multiple warnings if the supplied argument
+        isn't even a string pointer.  */
+      warning ("format not a string literal, argument types not checked");
+      return;
+    }
   format_chars = TREE_STRING_POINTER (format_tree);
   format_length = TREE_STRING_LENGTH (format_tree);
   if (format_length <= 1)