From 9471628798891a7bc2cf21721764520325630c9b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tobias=20Schl=C3=BCter?= Date: Sun, 30 May 2004 18:33:28 +0200 Subject: re PR fortran/14067 (no warning when character data statement overflows declared size) PR fortran/14067 * trans-const.c (gfc_conv_string_init): Allow variable string length lower than initialization string length. From-SVN: r82457 --- gcc/fortran/trans-const.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) (limited to 'gcc/fortran/trans-const.c') diff --git a/gcc/fortran/trans-const.c b/gcc/fortran/trans-const.c index 13f6b83..8a716de 100644 --- a/gcc/fortran/trans-const.c +++ b/gcc/fortran/trans-const.c @@ -90,7 +90,9 @@ gfc_build_string_const (int length, const char *s) } /* Return a string constant with the given length. Used for static - initializers. The constant will be padded to the full length. */ + initializers. The constant will be padded or truncated to match + length. */ + tree gfc_conv_string_init (tree length, gfc_expr * expr) { @@ -106,8 +108,8 @@ gfc_conv_string_init (tree length, gfc_expr * expr) len = TREE_INT_CST_LOW (length); slen = expr->value.character.length; - assert (len >= slen); - if (len != slen) + + if (len > slen) { s = gfc_getmem (len); memcpy (s, expr->value.character.string, slen); -- cgit v1.1