* lto.c (iterative_hash_canonical_type): Always recurse for pointers.
authorhubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4>
Sat, 21 Nov 2015 23:59:49 +0000 (23:59 +0000)
committerhubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4>
Sat, 21 Nov 2015 23:59:49 +0000 (23:59 +0000)
commitfc7464aea215c9f756b669cfc35e2b2eb402ba0a
tree8ce584973badca7655229ceeb55de6f4eed7e8d7
parente469587aaee501fd459e36dd96c3c5dba02a67b1
* lto.c (iterative_hash_canonical_type): Always recurse for pointers.
(gimple_register_canonical_type_1): Check that pointers do not get
canonical types.
(gimple_register_canonical_type): Do not register pointers.

* tree.c (build_pointer_type_for_mode,build_reference_type_for_mode):
In LTO we do not compute TYPE_CANONICAL of pointers.
(gimple_canonical_types_compatible_p): Improve coments; sanity check
that pointers do not have canonical type that would make us believe
they are different.
* alias.c (get_alias_set): Do structural type equality on pointers;
enable pointer path for LTO; also glob pointer to vector with pointer
to vector element; glob pointers and references for LTO; do more strict
sanity checking about build_pointer_type returning the canonical type
which is also the main variant.
(record_component_aliases): When component type is pointer and we
do LTO; record void_type_node alias set.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@230715 138bc75d-0d04-0410-961f-82ee72b054a4
gcc/ChangeLog
gcc/alias.c
gcc/lto/ChangeLog
gcc/lto/lto.c
gcc/tree.c