On Tue, Apr 5, 2011 at 8:44 AM, Paolo Bonzini <bonz...@gnu.org> wrote:
>>>> Index: cgraphbuild.c
>>>> ===================================================================
>>>> --- cgraphbuild.c.orig  2011-04-03 11:28:45.000000000 +0200
>>>> +++ cgraphbuild.c       2011-04-03 11:31:21.000000000 +0200
>>>> @@ -53,6 +53,12 @@ record_reference (tree *tp, int *walk_su
>>>>   tree decl;
>>>>   struct record_reference_ctx *ctx = (struct record_reference_ctx *)data;
>>>>
>>>> +  t = canonicalize_constructor_val (t);
>>>> +  if (!t)
>>>> +    t = *tp;
>>>> +  else if (t != *tp)
>>>> +    *tp = t;
>>>> +
>>>>   switch (TREE_CODE (t))
>>>>     {
>>>>     case VAR_DECL:
>>>
>>> This change caused:
>>>
>>> http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48440
>>>
>>
>> This avoids  canonicalizing constructor values for address conversion
>> if Pmode != ptr_mode.  OK for trunk?
>
> Certainly the right place to fix it is in canonicalize_constructor_val itself.

There should never be any Pmode pointer types in the gimple IL.  The
proper place to fix it if any is in useless_type_conversion_p.

Richard.

> Paolo
>

Reply via email to