diff --git a/gcc/ChangeLog b/gcc/ChangeLog index eed29f04cce587276287d3e040a0de71597010e5..17be451977da84fc09d92ebe300c11ec6979b4f8 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2011-12-12 Torvald Riegel <triegel@redhat.com> + + * gimplify.c (voidify_wrapper_expr): Add default handling for + outermost wrapper. + 2011-12-12 Torvald Riegel <triegel@redhat.com> * tree-ssa-tail-merge.c (gimple_equal_p): Don't treat transaction diff --git a/gcc/gimplify.c b/gcc/gimplify.c index f548e703390523fbcc23aeca031d1b9ed94e6951..fe8d2f801a35446c023d737f435ffd7a39bd4c92 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; } }