diff options
author | Feng Wang <fengwang@gcc.gnu.org> | 2005-05-15 02:45:29 +0000 |
---|---|---|
committer | Feng Wang <fengwang@gcc.gnu.org> | 2005-05-15 02:45:29 +0000 |
commit | b078dfbf39bdea09e613beb800c8261d57ba4c3b (patch) | |
tree | 561264b5f4c56dabd9ef6b439c86f897e8c47a29 | |
parent | 652ad062339cd338403543e46cf91eb5abbe7d36 (diff) | |
download | gcc-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/ChangeLog | 9 | ||||
-rw-r--r-- | gcc/fortran/trans-io.c | 3 | ||||
-rw-r--r-- | gcc/fortran/trans-stmt.c | 2 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/gfortran.dg/assign_4.f | 11 |
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 + |