>>> 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.

Paolo

Reply via email to