From d6910bb551f6d41b9e631d21f3fa3899f65757ab Mon Sep 17 00:00:00 2001 From: Francois-Xavier Coudert Date: Sat, 4 Nov 2006 21:58:26 +0100 Subject: re PR fortran/29713 (ICE in gfc_set_constant_character_len decl.c:762) PR fortran/29713 * expr.c (gfc_simplify_expr): Correct memory allocation. * gfortran.dg/pr29713.f90: New test. From-SVN: r118483 --- gcc/fortran/ChangeLog | 5 +++++ gcc/fortran/expr.c | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) (limited to 'gcc/fortran') diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index 800ba51..64d3baf 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,3 +1,8 @@ +2006-11-04 Francois-Xavier Coudert + + PR fortran/29713 + * expr.c (gfc_simplify_expr): Correct memory allocation. + 2006-11-02 Brooks Moses * error.c (show_locus): Remove "In file" from error messages. diff --git a/gcc/fortran/expr.c b/gcc/fortran/expr.c index d2da0d8..486da13 100644 --- a/gcc/fortran/expr.c +++ b/gcc/fortran/expr.c @@ -1436,7 +1436,7 @@ gfc_simplify_expr (gfc_expr * p, int type) gfc_extract_int (p->ref->u.ss.start, &start); start--; /* Convert from one-based to zero-based. */ gfc_extract_int (p->ref->u.ss.end, &end); - s = gfc_getmem (end - start + 1); + s = gfc_getmem (end - start + 2); memcpy (s, p->value.character.string + start, end - start); s[end-start+1] = '\0'; /* TODO: C-style string for debugging. */ gfc_free (p->value.character.string); -- cgit v1.1