aboutsummaryrefslogtreecommitdiff
path: root/gcc/fortran
diff options
context:
space:
mode:
authorTobias Burnus <burnus@net-b.de>2008-05-27 21:22:01 +0200
committerTobias Burnus <burnus@gcc.gnu.org>2008-05-27 21:22:01 +0200
commit795dc5872724ddea1e559b0477f5e5cfb96f0fce (patch)
tree80089095db8ea18354fc4703a37ad5bc156fe948 /gcc/fortran
parent75e8fd2f7196e3d6a5ffd0272e241f83c0d69c97 (diff)
downloadgcc-795dc5872724ddea1e559b0477f5e5cfb96f0fce.zip
gcc-795dc5872724ddea1e559b0477f5e5cfb96f0fce.tar.gz
gcc-795dc5872724ddea1e559b0477f5e5cfb96f0fce.tar.bz2
re PR fortran/36316 (type mismatch in binary expression caught by verify_gimple)
2008-05-27 Tobias Burnus <burnus@net-b.de> PR fortran/36316 * trans-array.c (gfc_set_loop_bounds_from_array_spec): Add missing fold_convert. 2008-05-27 Tobias Burnus <burnus@net-b.de> PR fortran/36316 * gfortran.dg/assignment_3.f90: New. From-SVN: r136052
Diffstat (limited to 'gcc/fortran')
-rw-r--r--gcc/fortran/ChangeLog6
-rw-r--r--gcc/fortran/trans-array.c4
2 files changed, 8 insertions, 2 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog
index 073f542..d879a4c 100644
--- a/gcc/fortran/ChangeLog
+++ b/gcc/fortran/ChangeLog
@@ -1,3 +1,9 @@
+2008-05-27 Tobias Burnus <burnus@net-b.de>
+
+ PR fortran/36316
+ * trans-array.c (gfc_set_loop_bounds_from_array_spec):
+ Add missing fold_convert.
+
2008-05-26 Daniel Franke <franke.daniel@gmail.com>
* fortran/cpp.c (cpp_define_builtins): Remove usage of TARGET_* macros,
diff --git a/gcc/fortran/trans-array.c b/gcc/fortran/trans-array.c
index a691ad5..bc6d13a 100644
--- a/gcc/fortran/trans-array.c
+++ b/gcc/fortran/trans-array.c
@@ -472,14 +472,14 @@ gfc_set_loop_bounds_from_array_spec (gfc_interface_mapping * mapping,
gfc_apply_interface_mapping (mapping, &tmpse, as->lower[dim]);
gfc_add_block_to_block (&se->pre, &tmpse.pre);
gfc_add_block_to_block (&se->post, &tmpse.post);
- lower = tmpse.expr;
+ lower = fold_convert (gfc_array_index_type, tmpse.expr);
/* ...and the upper bound. */
gfc_init_se (&tmpse, NULL);
gfc_apply_interface_mapping (mapping, &tmpse, as->upper[dim]);
gfc_add_block_to_block (&se->pre, &tmpse.pre);
gfc_add_block_to_block (&se->post, &tmpse.post);
- upper = tmpse.expr;
+ upper = fold_convert (gfc_array_index_type, tmpse.expr);
/* Set the upper bound of the loop to UPPER - LOWER. */
tmp = fold_build2 (MINUS_EXPR, gfc_array_index_type, upper, lower);