diff options
author | fengwang <fengwang@138bc75d-0d04-0410-961f-82ee72b054a4> | 2005-05-15 02:45:29 +0000 |
---|---|---|
committer | fengwang <fengwang@138bc75d-0d04-0410-961f-82ee72b054a4> | 2005-05-15 02:45:29 +0000 |
commit | 6957b927ee8fe3742e3ff7ccc5a10b8233db48b7 (patch) | |
tree | 561264b5f4c56dabd9ef6b439c86f897e8c47a29 /gcc | |
parent | f763cd84a3dead7d08fd663c2ddc0db676fd41aa (diff) | |
download | gcc-6957b927ee8fe3742e3ff7ccc5a10b8233db48b7.tar.gz |
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@99711 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc')
-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 76cd9f9fd00..5cfe135fda5 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 8701d5ebee1..a8f8ce8d461 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 60a786c6ac1..b8959968a69 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 09b2cb73e0a..9e239380bfb 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 00000000000..3277f7c74a2 --- /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 + |