On Tue, May 6, 2014 at 10:11 AM, Richard Sandiford
<rdsandif...@googlemail.com> wrote:
> Richard Biener <richard.guent...@gmail.com> writes:
>> On Mon, May 5, 2014 at 10:58 PM, Richard Sandiford
>> <rdsandif...@googlemail.com> wrote:
>>> Richard Biener <richard.guent...@gmail.com> writes:
>>>> On Mon, May 5, 2014 at 4:51 PM, Richard Sandiford
>>>> <rdsandif...@googlemail.com> wrote:
>>>>> Richard Biener <richard.guent...@gmail.com> writes:
>>>>>> On Mon, May 5, 2014 at 12:54 PM, Richard Sandiford
>>>>>> <rdsandif...@googlemail.com> wrote:
>>>>>>> Richard Biener <richard.guent...@gmail.com> writes:
>>>>>>>> On Fri, May 2, 2014 at 9:19 PM, Richard Sandiford
>>>>>>>> <rdsandif...@googlemail.com> wrote:
>>>>>>>>> I'd hoped the days of zero-precision INTEGER_CSTs were behind us after
>>>>>>>>> Richard's patch to remove min amd max values from zero-width 
>>>>>>>>> bitfields,
>>>>>>>>> but a boostrap-ubsan showed otherwise.  One source is in:
>>>>>>>>>
>>>>>>>>>   null_pointer_node = build_int_cst (build_pointer_type
>>>>>>>>> (void_type_node), 0);
>>>>>>>>>
>>>>>>>>> if no_target, since the precision of the type comes from ptr_mode,
>>>>>>>>> which remains the default VOIDmode.  Maybe that's a bug, but setting
>>>>>>>>> it to an arbitrary nonzero value would also be dangerous.
>>>>>>>>
>>>>>>>> Can you explain what 'no_target' should be?  ptr_mode should never be
>>>>>>>> VOIDmode.
>>>>>>>
>>>>>>> Sorry, meant "no_backend" rather than "no_target".  See do_compile.
>>>>>>
>>>>>> Ok.  So we do
>>>>>>
>>>>>>       /* This must be run always, because it is needed to compute the FP
>>>>>>          predefined macros, such as __LDBL_MAX__, for targets using non
>>>>>>          default FP formats.  */
>>>>>>       init_adjust_machine_modes ();
>>>>>>
>>>>>>       /* Set up the back-end if requested.  */
>>>>>>       if (!no_backend)
>>>>>>         backend_init ();
>>>>>>
>>>>>> where I think that init_adjust_machine_modes should initialize the
>>>>>> {byte,word,ptr}_mode globals.  Move from init_emit_once.
>>>
>>> init_adjust_machine_modes is an auto-generated function so I ended up
>>> using a new function instead.  Tested on x86_64-linux-gnu.  OK to install?
>>
>> Ok with also setting double_mode there.
>
> double_mode is just a local variable though, it's only used to set up
> dconstN.

Ah, I see.  Fine then as-is.

Thanks,
Richard.

> Thanks,
> Richard

Reply via email to