summaryrefslogtreecommitdiffstats
path: root/gcc
diff options
context:
space:
mode:
Diffstat (limited to 'gcc')
-rw-r--r--gcc/fortran/ChangeLog5
-rw-r--r--gcc/fortran/expr.c2
-rw-r--r--gcc/testsuite/ChangeLog8
-rw-r--r--gcc/testsuite/gfortran.dg/pr29713.f906
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
OpenPOWER on IntegriCloud