diff options
author | Paolo Bonzini <bonzini@gnu.org> | 2009-04-10 17:14:35 +0000 |
---|---|---|
committer | H.J. Lu <hjl@gcc.gnu.org> | 2009-04-10 10:14:35 -0700 |
commit | a862775d0ba4c7d2dd1c556913c6540d83106ffd (patch) | |
tree | c2f8ff2009db8889b44031c488c856a5b4201276 /gcc | |
parent | 4d35e75cf9b4acaca40316a42de29ab3858b5c91 (diff) | |
download | gcc-a862775d0ba4c7d2dd1c556913c6540d83106ffd.zip gcc-a862775d0ba4c7d2dd1c556913c6540d83106ffd.tar.gz gcc-a862775d0ba4c7d2dd1c556913c6540d83106ffd.tar.bz2 |
re PR middle-end/39701 (Revision 145846 caused many test failures)
2009-04-10 Paolo Bonzini <bonzini@gnu.org>
PR middle-end/39701
* trans.c (gfc_allocate_with_status): Fix type mismatches
on "pstat == 0".
From-SVN: r145930
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/fortran/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/fortran/trans.c | 8 |
2 files changed, 10 insertions, 4 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index 4b05370..130bcf8 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,3 +1,9 @@ +2009-04-10 Paolo Bonzini <bonzini@gnu.org> + + PR middle-end/39701 + * trans.c (gfc_allocate_with_status): Fix type mismatches + on "pstat == 0". + 2009-04-10 Daniel Franke <franke.daniel@gmail.com> PR fortran/38709 diff --git a/gcc/fortran/trans.c b/gcc/fortran/trans.c index 827f54e..ddbc730 100644 --- a/gcc/fortran/trans.c +++ b/gcc/fortran/trans.c @@ -605,8 +605,8 @@ gfc_allocate_with_status (stmtblock_t * block, tree size, tree status) fold_build1 (INDIRECT_REF, status_type, status), build_int_cst (status_type, 0)); tmp = fold_build3 (COND_EXPR, void_type_node, - fold_build2 (NE_EXPR, boolean_type_node, - status, build_int_cst (status_type, 0)), + fold_build2 (NE_EXPR, boolean_type_node, status, + build_int_cst (TREE_TYPE (status), 0)), tmp, build_empty_stmt ()); gfc_add_expr_to_block (block, tmp); } @@ -630,7 +630,7 @@ gfc_allocate_with_status (stmtblock_t * block, tree size, tree status) build_int_cst (pvoid_type_node, 0)); tmp = fold_build2 (EQ_EXPR, boolean_type_node, status, - build_int_cst (status_type, 0)); + build_int_cst (TREE_TYPE (status), 0)); error = fold_build3 (COND_EXPR, void_type_node, tmp, error, gfc_finish_block (&set_status_block)); } @@ -653,7 +653,7 @@ gfc_allocate_with_status (stmtblock_t * block, tree size, tree status) tree tmp2; cond = fold_build2 (EQ_EXPR, boolean_type_node, status, - build_int_cst (status_type, 0)); + build_int_cst (TREE_TYPE (status), 0)); tmp2 = fold_build2 (MODIFY_EXPR, status_type, fold_build1 (INDIRECT_REF, status_type, status), build_int_cst (status_type, LIBERROR_ALLOCATION)); |