------- Additional Comments From gdr at gcc dot gnu dot org 2005-04-28 08:23 ------- (In reply to comment #6) > Um... first of all, this works on 3.4 branch only by accident, i.e. I think > the > underlying problem is still present there. What happens is that a call has an > argument containing a TARGET_EXPR with cleanups and is eligible for the > sibling > call optimization. The cleanups are expanded during the first pass but, since > the optimization eventually fails, the RTL is thrown away. Then, during the > second pass, the TARGET_EXPR is expanded again but not the cleanups because > they > are not registered (the variable 'cleanups' is NULL at expr.c:9050). > > I'm not sure how this is supposed to work. Richard, do you have any > recollection of this? In 2000(!), you commited this patch:
RTH -- I guess you did not have interest in this? Shall I close it as WONTFIX? -- Gaby -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=15853