This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: C++ PATCH for c++/9993
This should fix the problem. Applied to 3.2 and 3.3.
2003-03-17 Jason Merrill <jason at redhat dot com>
* decl.c (finish_function): Don't skip a block.
*** decl.c.~1~ 2003-03-17 18:11:28.000000000 -0500
--- decl.c 2003-03-17 18:09:41.000000000 -0500
*************** finish_function (flags)
*** 14614,14621 ****
the function so we know that their lifetime always ends with a
return; see g++.dg/opt/nrv6.C. We could be more flexible if
we were to do this optimization in tree-ssa. */
! /* Skip the artificial function body block. */
! && (outer = BLOCK_SUBBLOCKS (BLOCK_SUBBLOCKS (DECL_INITIAL (fndecl))),
chain_member (r, BLOCK_VARS (outer))))
{
--- 14614,14620 ----
the function so we know that their lifetime always ends with a
return; see g++.dg/opt/nrv6.C. We could be more flexible if
we were to do this optimization in tree-ssa. */
! && (outer = BLOCK_SUBBLOCKS (DECL_INITIAL (fndecl)),
chain_member (r, BLOCK_VARS (outer))))
{