aboutsummaryrefslogtreecommitdiff
path: root/gcc/fortran
diff options
context:
space:
mode:
authorTobias Burnus <burnus@net-b.de>2007-05-04 15:40:32 +0200
committerTobias Burnus <burnus@gcc.gnu.org>2007-05-04 15:40:32 +0200
commitb2890f04bdb5f579c901c49aa7f544601806061f (patch)
tree9693ca020193aea54c7f79c6cbe39b0bf17042ad /gcc/fortran
parent26fbc975c83a59ba27e067207c21f083b42b0aba (diff)
downloadgcc-b2890f04bdb5f579c901c49aa7f544601806061f.zip
gcc-b2890f04bdb5f579c901c49aa7f544601806061f.tar.gz
gcc-b2890f04bdb5f579c901c49aa7f544601806061f.tar.bz2
re PR fortran/31803 (ICE for character pointer => target(range))
2007-05-04 Tobias Burnus <burnus@net-b.de> PR fortran/31803 * expr.c (gfc_check_pointer_assign): Check for NULL pointer. 2007-05-04 Tobias Burnus <burnus@net-b.de> PR fortran/31803 * gfortran.dg/char_pointer_assign_3.f90: New test. * gfortran.dg/char_result_2.f90: Re-enable test. From-SVN: r124419
Diffstat (limited to 'gcc/fortran')
-rw-r--r--gcc/fortran/ChangeLog5
-rw-r--r--gcc/fortran/expr.c1
2 files changed, 6 insertions, 0 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog
index 71ec57e..b3b17fd 100644
--- a/gcc/fortran/ChangeLog
+++ b/gcc/fortran/ChangeLog
@@ -1,3 +1,8 @@
+2007-05-04 Tobias Burnus <burnus@net-b.de>
+
+ PR fortran/31803
+ * expr.c (gfc_check_pointer_assign): Check for NULL pointer.
+
2007-05-04 Jerry DeLisle <jvdelisle@gcc.gnu.org>
PR fortran/31251
diff --git a/gcc/fortran/expr.c b/gcc/fortran/expr.c
index a408229..9957a46 100644
--- a/gcc/fortran/expr.c
+++ b/gcc/fortran/expr.c
@@ -2553,6 +2553,7 @@ gfc_check_pointer_assign (gfc_expr *lvalue, gfc_expr *rvalue)
return SUCCESS;
if (lvalue->ts.type == BT_CHARACTER
+ && lvalue->ts.cl && rvalue->ts.cl
&& lvalue->ts.cl->length && rvalue->ts.cl->length
&& abs (gfc_dep_compare_expr (lvalue->ts.cl->length,
rvalue->ts.cl->length)) == 1)