OSDN Git Service

* c-common.c (combine_strings): Emit a pedantic warning when a
authorghazi <ghazi@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 12 Jul 2000 21:03:29 +0000 (21:03 +0000)
committerghazi <ghazi@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 12 Jul 2000 21:03:29 +0000 (21:03 +0000)
string length is greater than the minimum ANSI C is required
to support.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@34999 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/c-common.c

index eed3f14..bc3f53b 100644 (file)
@@ -1,3 +1,9 @@
+2000-07-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+       * c-common.c (combine_strings): Emit a pedantic warning when a
+       string length is greater than the minimum ANSI C is required
+       to support.
+
 Wed Jul 12 13:24:30 2000  Jeffrey A Law  (law@cygnus.com)
 
        * pa/xm-pa64.h (NO_SYS_SIGLIST): Kill.
index b6cf58e..f72ec47 100644 (file)
@@ -294,6 +294,7 @@ combine_strings (strings)
   int wide_flag = 0;
   int wchar_bytes = TYPE_PRECISION (wchar_type_node) / BITS_PER_UNIT;
   int nchars;
+  const int nchars_max = flag_isoc99 ? 4095 : 509;
 
   if (TREE_CHAIN (strings))
     {
@@ -373,6 +374,10 @@ combine_strings (strings)
   /* Compute the number of elements, for the array type.  */
   nchars = wide_flag ? length / wchar_bytes : length;
 
+  if (pedantic && nchars > nchars_max)
+    pedwarn ("string length `%d' is greater than the minimum length `%d' ANSI C is required to support",
+            nchars, nchars_max);
+
   /* Create the array type for the string constant.
      -Wwrite-strings says make the string constant an array of const char
      so that copying it to a non-const pointer will get a warning.