re PR middle-end/48849 (SPEC CPU 2000/2006 failed to build with LTO)
2011-05-20 Richard Guenther <rguenther@suse.de> PR middle-end/48849 * gimple.c (gimple_register_canonical_type): Compute TYPE_CANONICAL of pointer types the same way the middle-end does. From-SVN: r173939
This commit is contained in:
parent
fb291a1ea7
commit
0ea80a1603
|
@ -1,3 +1,9 @@
|
|||
2011-05-20 Richard Guenther <rguenther@suse.de>
|
||||
|
||||
PR middle-end/48849
|
||||
* gimple.c (gimple_register_canonical_type): Compute TYPE_CANONICAL
|
||||
of pointer types the same way the middle-end does.
|
||||
|
||||
2011-05-20 Richard Guenther <rguenther@suse.de>
|
||||
|
||||
* gimple.c (gimple_register_type_1): Do not fiddle with
|
||||
|
|
19
gcc/gimple.c
19
gcc/gimple.c
|
@ -4801,6 +4801,25 @@ gimple_register_canonical_type (tree t)
|
|||
if (TYPE_CANONICAL (t))
|
||||
return TYPE_CANONICAL (t);
|
||||
|
||||
/* For pointer and reference types do as the middle-end does - the
|
||||
canonical type is a pointer to the canonical pointed-to type. */
|
||||
if (TREE_CODE (t) == POINTER_TYPE)
|
||||
{
|
||||
TYPE_CANONICAL (t)
|
||||
= build_pointer_type_for_mode
|
||||
(gimple_register_canonical_type (TREE_TYPE (t)),
|
||||
TYPE_MODE (t), TYPE_REF_CAN_ALIAS_ALL (t));
|
||||
return TYPE_CANONICAL (t);
|
||||
}
|
||||
else if (TREE_CODE (t) == REFERENCE_TYPE)
|
||||
{
|
||||
TYPE_CANONICAL (t)
|
||||
= build_reference_type_for_mode
|
||||
(gimple_register_canonical_type (TREE_TYPE (t)),
|
||||
TYPE_MODE (t), TYPE_REF_CAN_ALIAS_ALL (t));
|
||||
return TYPE_CANONICAL (t);
|
||||
}
|
||||
|
||||
if (gimple_canonical_types == NULL)
|
||||
gimple_canonical_types = htab_create_ggc (16381, gimple_canonical_type_hash,
|
||||
gimple_canonical_type_eq, 0);
|
||||
|
|
Loading…
Reference in New Issue