diff options
Diffstat (limited to 'gcc')
| -rw-r--r-- | gcc/fortran/ChangeLog | 5 | ||||
| -rw-r--r-- | gcc/fortran/expr.c | 2 | ||||
| -rw-r--r-- | gcc/testsuite/ChangeLog | 8 | ||||
| -rw-r--r-- | gcc/testsuite/gfortran.dg/pr29713.f90 | 6 |
4 files changed, 18 insertions, 3 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index 800ba511f2a..64d3bafa8d4 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,3 +1,8 @@ +2006-11-04 Francois-Xavier Coudert <coudert@clipper.ens.fr> + + PR fortran/29713 + * expr.c (gfc_simplify_expr): Correct memory allocation. + 2006-11-02 Brooks Moses <brooks.moses@codesourcery.com> * error.c (show_locus): Remove "In file" from error messages. diff --git a/gcc/fortran/expr.c b/gcc/fortran/expr.c index d2da0d845c3..486da131d89 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); diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 1949db13719..6ca95da9743 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2006-11-04 Francois-Xavier Coudert <coudert@clipper.ens.fr> + + PR libfortran/29713 + * gfortran.dg/pr29713.f90: New test. + 2006-11-03 J"orn Rennecke <joern.rennecke@st.com> * testsuite/gcc.c-torture/execute/arith-rand-ll.c: @@ -6,8 +11,7 @@ 2006-11-03 Francois-Xavier Coudert <coudert@clipper.ens.fr> PR libfortran/27895 - * gcc/testsuite/gfortran.dg/zero_sized_1.f90: Uncomment checks - for RESHAPE. + * gfortran.dg/zero_sized_1.f90: Uncomment checks for RESHAPE. 2006-11-02 Brooks Moses <brooks.moses@codesourcery.com> diff --git a/gcc/testsuite/gfortran.dg/pr29713.f90 b/gcc/testsuite/gfortran.dg/pr29713.f90 new file mode 100644 index 00000000000..be4accd6edd --- /dev/null +++ b/gcc/testsuite/gfortran.dg/pr29713.f90 @@ -0,0 +1,6 @@ +! { dg-do compile } + character*2 a + character*4 b + parameter (a="12") + parameter (b = a(1:2)) + end |

