This is the mail archive of the
mailing list for the GCC project.
Re: set the correct block info for the call stmt in fnsplit (issue6111050)
On Fri, Apr 27, 2012 at 5:06 AM, Jan Hubicka <firstname.lastname@example.org> wrote:
>> On Fri, Apr 27, 2012 at 12:50 PM, Eric Botcazou <email@example.com> wrote:
>> >> We do not depend on the block structure any more when dealing with
>> >> stack layout for variables in GCC 4.7.0 and above. ?I am not saying
>> >> your patch is incorrect or not needed. ?Just it will not have an
>> >> effect on variable stack layout.
>> > It might be worth backporting to the 4.6 branch though, these stack layout
>> > issues are very nasty.
>> What about not setting a BLOCK on the call stmt? ?That said, I can't see
> I recall that not seetting the block did lead to ICE...
>> how outlining a SESE region that starts at the beginning of the function
>> is not conservatively using the outermost BLOCK ... so, is the bug not
> ... so I made the exactly same conclussion.
> The problem is with stack vars allocated in header that survive till the
> tail part?
A SESE region does not necessary at the beginning of the function.
They can be anywhere.
In the example I attached, it is at the end of function.
Even if the outlined region is at the beginning the function. setting
the call_stmt as the outermost
block is also incorrect.
For c++ programs, the block for function level local variables is not
It is the subblock of DECL_INITIAL(current_function_decl).
This is different from c programs.
>> > --
>> > Eric Botcazou