diff options
author | Jerry DeLisle <jvdelisle@gcc.gnu.org> | 2007-05-04 11:10:06 +0000 |
---|---|---|
committer | François-Xavier Coudert <fxcoudert@gcc.gnu.org> | 2007-05-04 11:10:06 +0000 |
commit | 26fbc975c83a59ba27e067207c21f083b42b0aba (patch) | |
tree | 0b082da33a4c9d599e402f3745a4a508695405b7 /gcc | |
parent | e4fae5f757ec925170556bd2f51cf2dc1cc43523 (diff) | |
download | gcc-26fbc975c83a59ba27e067207c21f083b42b0aba.zip gcc-26fbc975c83a59ba27e067207c21f083b42b0aba.tar.gz gcc-26fbc975c83a59ba27e067207c21f083b42b0aba.tar.bz2 |
re PR fortran/31251 (Non-integer character length leads to segfault)
PR fortran/31251
* simplify.c (gfc_simplify_len): Only simplify integer lengths.
From-SVN: r124415
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/fortran/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/fortran/simplify.c | 5 |
2 files changed, 8 insertions, 2 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index ee99186..71ec57e 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,3 +1,8 @@ +2007-05-04 Jerry DeLisle <jvdelisle@gcc.gnu.org> + + PR fortran/31251 + * simplify.c (gfc_simplify_len): Only simplify integer lengths. + 2007-05-04 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org> PR fortran/31781 diff --git a/gcc/fortran/simplify.c b/gcc/fortran/simplify.c index 3065c02..9df2e81 100644 --- a/gcc/fortran/simplify.c +++ b/gcc/fortran/simplify.c @@ -2136,14 +2136,15 @@ gfc_simplify_len (gfc_expr *e) } if (e->ts.cl != NULL && e->ts.cl->length != NULL - && e->ts.cl->length->expr_type == EXPR_CONSTANT) + && e->ts.cl->length->expr_type == EXPR_CONSTANT + && e->ts.cl->length->ts.type == BT_INTEGER) { result = gfc_constant_result (BT_INTEGER, gfc_default_integer_kind, &e->where); mpz_set (result->value.integer, e->ts.cl->length->value.integer); return range_check (result, "LEN"); } - + return NULL; } |