diff options
author | aldyh <aldyh@138bc75d-0d04-0410-961f-82ee72b054a4> | 2006-12-05 17:26:05 +0000 |
---|---|---|
committer | aldyh <aldyh@138bc75d-0d04-0410-961f-82ee72b054a4> | 2006-12-05 17:26:05 +0000 |
commit | 35cc02b5c80ac6738c1a3362a822e3d7e4d0c587 (patch) | |
tree | 32d3ee1ddfcad180d619d756a84eeb0df779a6a2 /gcc/stmt.c | |
parent | fc297ba47e780c3659434d04f3c299b705154d5f (diff) | |
download | gcc-35cc02b5c80ac6738c1a3362a822e3d7e4d0c587.tar.gz |
Merge gimple-tuples-branch into mainline.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@119546 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/stmt.c')
-rw-r--r-- | gcc/stmt.c | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/gcc/stmt.c b/gcc/stmt.c index d5a181b9d2d..819d9be85b6 100644 --- a/gcc/stmt.c +++ b/gcc/stmt.c @@ -1362,6 +1362,9 @@ expand_expr_stmt (tree exp) tree type; value = expand_expr (exp, const0_rtx, VOIDmode, 0); + if (GIMPLE_TUPLE_P (exp)) + type = void_type_node; + else type = TREE_TYPE (exp); /* If all we do is reference a volatile value in memory, @@ -1415,6 +1418,7 @@ warn_if_unused_value (tree exp, location_t locus) case PREDECREMENT_EXPR: case POSTDECREMENT_EXPR: case MODIFY_EXPR: + case GIMPLE_MODIFY_STMT: case INIT_EXPR: case TARGET_EXPR: case CALL_EXPR: @@ -1582,10 +1586,10 @@ expand_return (tree retval) expand_null_return (); return; } - else if ((TREE_CODE (retval) == MODIFY_EXPR + else if ((TREE_CODE (retval) == GIMPLE_MODIFY_STMT || TREE_CODE (retval) == INIT_EXPR) - && TREE_CODE (TREE_OPERAND (retval, 0)) == RESULT_DECL) - retval_rhs = TREE_OPERAND (retval, 1); + && TREE_CODE (GENERIC_TREE_OPERAND (retval, 0)) == RESULT_DECL) + retval_rhs = GENERIC_TREE_OPERAND (retval, 1); else retval_rhs = retval; @@ -1604,7 +1608,7 @@ expand_return (tree retval) (and in expand_call). */ else if (retval_rhs != 0 - && TYPE_MODE (TREE_TYPE (retval_rhs)) == BLKmode + && TYPE_MODE (GENERIC_TREE_TYPE (retval_rhs)) == BLKmode && REG_P (result_rtl)) { int i; |