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: [RFC] Fix PR 43564


On Mon, Mar 29, 2010 at 6:10 AM, Jie Zhang <jie@codesourcery.com> wrote:
> On 03/29/2010 05:29 PM, Richard Guenther wrote:
>>
>> On Mon, Mar 29, 2010 at 9:42 AM, Jie Zhang<jie@codesourcery.com> ?wrote:
>>>
>>> At the end of decode_options, flag_var_tracking is still
>>> AUTODETECT_VALUE,
>>> which is 2. It's set to 0 in process_options if we pass no options in
>>> command line. Currently. we create optimization_default_node at the end
>>> of
>>> decode_options. So flag_var_tracking is recorded as 2 in
>>> optimization_default_node. After processing a function with optimize
>>> attribute, options are reset to optimization_default_node, which set
>>> flag_var_tracking to 2. Thus var_location and debug_insn will be
>>> generated
>>> for the next functions, although we pass no debug options in command
>>> line.
>>> Then if the function with var_location is inlined into a function with
>>> optimize attribute. the tree operand of var_location will have no chance
>>> to
>>> be expanded into RTL and eventually cause an ICE.
>>>
>>> To fix this bug, this patch just move initialization of
>>> optimization_default_node from decode_options to process_options, where
>>> flag_var_tracking and friends have been initialized properly.
>>>
>>> Regression testing has not been done yet.
>>>
>>> Is it OK if no regressions?
>>
>> Ok.
>>
> Thanks! Committed as bootstrapping and testing with
> --enable-languages=c,c++,objc,fortran on x86_64 has no regressions.
>

This patch caused:

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43574

You should enable LTO when you do testing.

Thanks.


-- 
H.J.


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