aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKaveh R. Ghazi <ghazi@caip.rutgers.edu>2000-07-12 21:03:29 +0000
committerKaveh Ghazi <ghazi@gcc.gnu.org>2000-07-12 21:03:29 +0000
commit1326a48bac7fc293be6e35e1e398cd897e6d7916 (patch)
tree239fe82df92b5becd01501ce3dc7a59b3ac1f02c
parent733dee92dc7e68e682501d06d68c09c1677ffe80 (diff)
downloadgcc-1326a48bac7fc293be6e35e1e398cd897e6d7916.zip
gcc-1326a48bac7fc293be6e35e1e398cd897e6d7916.tar.gz
gcc-1326a48bac7fc293be6e35e1e398cd897e6d7916.tar.bz2
c-common.c (combine_strings): Emit a pedantic warning when a string length is greater than the minimum ANSI C...
* c-common.c (combine_strings): Emit a pedantic warning when a string length is greater than the minimum ANSI C is required to support. From-SVN: r34999
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/c-common.c5
2 files changed, 11 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index eed3f14..bc3f53b 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -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.
diff --git a/gcc/c-common.c b/gcc/c-common.c
index b6cf58e..f72ec47 100644
--- a/gcc/c-common.c
+++ b/gcc/c-common.c
@@ -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.