On Mon, Dec 2, 2013 at 6:46 PM, Sriraman Tallam <tmsri...@google.com> wrote:
> On Thu, Nov 28, 2013 at 9:36 PM, Bernd Edlinger
> <bernd.edlin...@hotmail.de> wrote:
>> Hi,
>>
>> On Wed, 27 Nov 2013 19:49:39, Uros Bizjak wrote:
>>>
>>> On Mon, Nov 25, 2013 at 10:08 PM, Sriraman Tallam <tmsri...@google.com> 
>>> wrote:
>>>
>>>> I have attached a patch to fix this bug :
>>>>
>>>> http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58944
>>>>
>>>> A similar problem was also reported here:
>>>> http://gcc.gnu.org/ml/gcc-patches/2013-11/msg01050.html
>>>>
>>>>
>>>> Recently, ix86_valid_target_attribute_tree in config/i386/i386.c was
>>>> refactored to not depend on global_options structure and to be able to
>>>> use any gcc_options structure. One clean way to fix this is by having
>>>> target_option_default_node save all the default target options which
>>>> can be restored to any gcc_options structure. The root cause of the
>>>> above bugs was that ix86_arch_string and ix86_tune_string was not
>>>> saved in target_option_deault_node in PR58944 and
>>>> ix86_preferred_stack_boundary_arg was not saved in the latter case.
>>>>
>>>> This patch saves all the target options used in i386.opt which are
>>>> either obtained from the command-line or set to some default. Is this
>>>> patch alright?
>>>
>>> Things looks rather complicated, but I see no other solution that save
>>> and restore the way you propose.
>>>
>>> Please wait 24h if somebody has a different idea, otherwise please go
>>> ahead and commit the patch to mainline.
>>>
>>
>> Maybe you should also look at the handling or preferred_stack_boundary_arg
>> versus incoming_stack_boundary_arg in ix86_option_override_internal:
>>
>> Remember ix86_incoming_stack_boundary_arg is defined to
>> global_options.x_ix86_incoming_stack_boundary_arg.
>>
>> like this?
>>
>>   if (opts_set->x_ix86_incoming_stack_boundary_arg)
>>     {
>> -      if (ix86_incoming_stack_boundary_arg
>> +      if (opts->x_ix86_incoming_stack_boundary_arg
>>           < (TARGET_64BIT_P (opts->x_ix86_isa_flags) ? 4 : 2)
>> -          || ix86_incoming_stack_boundary_arg> 12)
>> +         || opts->x_ix86_incoming_stack_boundary_arg> 12)
>>         error ("-mincoming-stack-boundary=%d is not between %d and 12",
>> -               ix86_incoming_stack_boundary_arg,
>> +              opts->x_ix86_incoming_stack_boundary_arg,
>>                TARGET_64BIT_P (opts->x_ix86_isa_flags) ? 4 : 2);
>>       else
>>         {
>>           ix86_user_incoming_stack_boundary
>> -            = (1 << ix86_incoming_stack_boundary_arg) * BITS_PER_UNIT;
>> +           = (1 << opts->x_ix86_incoming_stack_boundary_arg) * 
>> BITS_PER_UNIT;
>>           ix86_incoming_stack_boundary
>>             = ix86_user_incoming_stack_boundary;
>>         }
>>
>
> Thanks for catching this. I will make this change in the same patch.
>

Your change caused:

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


-- 
H.J.

Reply via email to