aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFeng Wang <fengwang@gcc.gnu.org>2005-05-15 02:45:29 +0000
committerFeng Wang <fengwang@gcc.gnu.org>2005-05-15 02:45:29 +0000
commitb078dfbf39bdea09e613beb800c8261d57ba4c3b (patch)
tree561264b5f4c56dabd9ef6b439c86f897e8c47a29
parent652ad062339cd338403543e46cf91eb5abbe7d36 (diff)
downloadgcc-b078dfbf39bdea09e613beb800c8261d57ba4c3b.zip
gcc-b078dfbf39bdea09e613beb800c8261d57ba4c3b.tar.gz
gcc-b078dfbf39bdea09e613beb800c8261d57ba4c3b.tar.bz2
[multiple changes]
2005-05-15 Feng Wang <fengwang@nudt.edu.cn> Jerry DeLisle <jvdelisle@verizon.net> PR fortran/17432 * trans-stmt.c (gfc_trans_label_assign): fix pointer type, to resolve ICE on assign of format label. * trans-io.c (set_string): add fold-convert to properly handle assigned format label in write. 2005-05-15 Jerry DeLisle <jvdelisle@verizon.net> PR fortran/17432 * gfortran.dg/assign_4.f: New test. From-SVN: r99711
-rw-r--r--gcc/fortran/ChangeLog9
-rw-r--r--gcc/fortran/trans-io.c3
-rw-r--r--gcc/fortran/trans-stmt.c2
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/gfortran.dg/assign_4.f11
5 files changed, 28 insertions, 2 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog
index 76cd9f9..5cfe135 100644
--- a/gcc/fortran/ChangeLog
+++ b/gcc/fortran/ChangeLog
@@ -1,3 +1,12 @@
+2005-05-15 Feng Wang <fengwang@nudt.edu.cn>
+ Jerry DeLisle <jvdelisle@verizon.net>
+
+ PR fortran/17432
+ * trans-stmt.c (gfc_trans_label_assign): fix pointer type, to
+ resolve ICE on assign of format label.
+ * trans-io.c (set_string): add fold-convert to properly
+ handle assigned format label in write.
+
2005-05-13 Paul Brook <paul@codesourcery.com>
* trans-stmt.c (gfc_trans_forall_1): Fix comment typo.
diff --git a/gcc/fortran/trans-io.c b/gcc/fortran/trans-io.c
index 8701d5e..a8f8ce8 100644
--- a/gcc/fortran/trans-io.c
+++ b/gcc/fortran/trans-io.c
@@ -394,7 +394,8 @@ set_string (stmtblock_t * block, stmtblock_t * postblock, tree var,
tmp = build2 (LE_EXPR, boolean_type_node,
tmp, convert (TREE_TYPE (tmp), integer_minus_one_node));
gfc_trans_runtime_check (tmp, msg, &se.pre);
- gfc_add_modify_expr (&se.pre, io, GFC_DECL_ASSIGN_ADDR (se.expr));
+ gfc_add_modify_expr (&se.pre, io,
+ fold_convert (TREE_TYPE (io), GFC_DECL_ASSIGN_ADDR (se.expr)));
gfc_add_modify_expr (&se.pre, len, GFC_DECL_STRING_LEN (se.expr));
}
else
diff --git a/gcc/fortran/trans-stmt.c b/gcc/fortran/trans-stmt.c
index 60a786c..b895996 100644
--- a/gcc/fortran/trans-stmt.c
+++ b/gcc/fortran/trans-stmt.c
@@ -129,7 +129,7 @@ gfc_trans_label_assign (gfc_code * code)
label_len = code->label->format->value.character.length;
len_tree = build_int_cst (NULL_TREE, label_len);
label_tree = gfc_build_string_const (label_len + 1, label_str);
- label_tree = gfc_build_addr_expr (pchar_type_node, label_tree);
+ label_tree = gfc_build_addr_expr (pvoid_type_node, label_tree);
}
gfc_add_modify_expr (&se.pre, len, len_tree);
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 09b2cb7..9e23938 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2005-05-15 Jerry DeLisle <jvdelisle@verizon.net>
+
+ PR fortran/17432
+ * gfortran.dg/assign_4.f: New test.
+
2005-05-14 Kazu Hirata <kazu@cs.umass.edu>
PR tree-optimization/21563
diff --git a/gcc/testsuite/gfortran.dg/assign_4.f b/gcc/testsuite/gfortran.dg/assign_4.f
new file mode 100644
index 0000000..3277f7c
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/assign_4.f
@@ -0,0 +1,11 @@
+! { dg-do compile }
+! Option passed to avoid excess errors from obsolete warning
+! { dg-options "-w" }
+! PR17423
+ program testit
+c
+ assign 12 to i
+ write(*, i)
+ 0012 format (" **** ASSIGN FORMAT NUMBER TO INTEGER VARIABLE ****" )
+ end
+