summaryrefslogtreecommitdiff
path: root/gcc/gimplify.c
diff options
context:
space:
mode:
authortorvald <torvald@138bc75d-0d04-0410-961f-82ee72b054a4>2011-12-12 12:05:01 +0000
committertorvald <torvald@138bc75d-0d04-0410-961f-82ee72b054a4>2011-12-12 12:05:01 +0000
commit273d05b3ed91fa47a5fb9ef16592f3d7eeb527b2 (patch)
tree4394d43e92b3fa9d541f51abeb1c408a4b24f4cb /gcc/gimplify.c
parent6ef745dee79d8e5f140f274ce13a1fd22d126cb8 (diff)
downloadgcc-273d05b3ed91fa47a5fb9ef16592f3d7eeb527b2.tar.gz
Add default handling for outermost wrappers in voidify_wrapper_expr.
gcc/ * gimplify.c (voidify_wrapper_expr): Add default handling for outermost wrapper. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@182232 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/gimplify.c')
-rw-r--r--gcc/gimplify.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/gcc/gimplify.c b/gcc/gimplify.c
index f548e703390..fe8d2f801a3 100644
--- a/gcc/gimplify.c
+++ b/gcc/gimplify.c
@@ -1081,6 +1081,15 @@ voidify_wrapper_expr (tree wrapper, tree temp)
break;
default:
+ /* Assume that any tree upon which voidify_wrapper_expr is
+ directly called is a wrapper, and that its body is op0. */
+ if (p == &wrapper)
+ {
+ TREE_SIDE_EFFECTS (*p) = 1;
+ TREE_TYPE (*p) = void_type_node;
+ p = &TREE_OPERAND (*p, 0);
+ break;
+ }
goto out;
}
}