This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH] Fix PR c++/17972


On Wed, 9 Mar 2005 08:54:08 +0100, Eric Botcazou <ebotcazou@libertysurf.fr> wrote:

> When the C++ FE converts the decrement expression to the 3-operand form, it 
> first stabilizes the lhs; however, since the function is marked as 'const', 
> the stabilization is a no-op so the CALL_EXPR ends up being referenced twice 
> in the expression.  Later, when the tree inliner kicks in, it inlines the 
> unique CALL_EXPR.  When the enclosing expression is expanded to RTL, the 
> inlined body is expanded twice and all hell breaks loose since the RETURN of 
> the second block points to the return label of the first block.

Hmm, wait...inlining happens after gimplification, yes?  The gimplification
process should have unshared the CALL_EXPR in one of the two calls to
unshare_all_trees, so we should have had two CALL_EXPRs, not one shared
one.

Jason


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]