diff options
author | Francois-Xavier Coudert <coudert@clipper.ens.fr> | 2006-11-04 21:58:26 +0100 |
---|---|---|
committer | François-Xavier Coudert <fxcoudert@gcc.gnu.org> | 2006-11-04 20:58:26 +0000 |
commit | d6910bb551f6d41b9e631d21f3fa3899f65757ab (patch) | |
tree | 854baedab5fff3b2ca5cb60f092346ba2f14ff0f /gcc/fortran/expr.c | |
parent | c5289e454b2097834bece1843af3bb1f6758eac3 (diff) | |
download | gcc-d6910bb551f6d41b9e631d21f3fa3899f65757ab.zip gcc-d6910bb551f6d41b9e631d21f3fa3899f65757ab.tar.gz gcc-d6910bb551f6d41b9e631d21f3fa3899f65757ab.tar.bz2 |
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
Diffstat (limited to 'gcc/fortran/expr.c')
-rw-r--r-- | gcc/fortran/expr.c | 2 |
1 files changed, 1 insertions, 1 deletions
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); |