From: Richard Stallman Date: Mon, 3 May 1993 23:02:49 +0000 (+0000) Subject: (digest_init): Check size properly for wide-string. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=fe9ef5d7b76fd06c4b39374884e3ef39c23827fb;p=gcc.git (digest_init): Check size properly for wide-string. From-SVN: r4309 --- diff --git a/gcc/c-typeck.c b/gcc/c-typeck.c index 96c59ec68a8..9a4cdec1b6c 100644 --- a/gcc/c-typeck.c +++ b/gcc/c-typeck.c @@ -4829,9 +4829,13 @@ digest_init (type, init, tail, require_constant, constructor_constant, ofwhat) { register int size = TREE_INT_CST_LOW (TYPE_SIZE (type)); size = (size + BITS_PER_UNIT - 1) / BITS_PER_UNIT; - /* Subtract 1 because it's ok to ignore the terminating null char + /* Subtract 1 (or sizeof (wchar_t)) + because it's ok to ignore the terminating null char that is counted in the length of the constant. */ - if (size < TREE_STRING_LENGTH (string) - 1) + if (size < TREE_STRING_LENGTH (string) + - (TYPE_PRECISION (typ1) != TYPE_PRECISION (char_type_node) + ? TYPE_PRECISION (wchar_type_node) / BITS_PER_UNIT + : 1)) pedwarn_init ( "initializer-string for array of chars%s is too long", " `%s'", ofwhat);