summaryrefslogtreecommitdiff
path: root/gcc/lto-streamer-in.c
diff options
context:
space:
mode:
authorrguenth <rguenth@138bc75d-0d04-0410-961f-82ee72b054a4>2010-07-20 12:05:59 +0000
committerrguenth <rguenth@138bc75d-0d04-0410-961f-82ee72b054a4>2010-07-20 12:05:59 +0000
commit003c7ce58f3ba2b5d755bcbe64b7218e4f17e31b (patch)
treebde8f9d8031adf6d703dcc9a8bdba382267ca985 /gcc/lto-streamer-in.c
parentcfe3cae32d819232826fded4bab11bca6d79c943 (diff)
downloadgcc-003c7ce58f3ba2b5d755bcbe64b7218e4f17e31b.tar.gz
2010-07-20 Richard Guenther <rguenther@suse.de>
* lto-symtab.c (lto_symtab_merge): Use gimple_types_compatible_p. (lto_symtab_merge_decls_2): Likewise. * gimple.h (gimple_types_compatible_p): Declare. * gimple.c (gimple_queue_type_fixup): Remove. (gimple_fixup_complete_and_incomplete_subtype_p): Likewise. (gimple_compatible_complete_and_incomplete_type_p): New function. (gimple_types_compatible_p): Adjust. (gimple_register_type): Remove type fixup code. (print_gimple_types_stats): Adjust. (free_gimple_type_tables): Likewise. * lto-streamer-in.c (input_gimple_stmt): Use gimple_types_compatible_p. * tree-ssa.c (useless_type_conversion_p): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@162330 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/lto-streamer-in.c')
-rw-r--r--gcc/lto-streamer-in.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/gcc/lto-streamer-in.c b/gcc/lto-streamer-in.c
index 274418e838e..9d3e7ec94a1 100644
--- a/gcc/lto-streamer-in.c
+++ b/gcc/lto-streamer-in.c
@@ -960,7 +960,9 @@ input_gimple_stmt (struct lto_input_block *ib, struct data_in *data_in,
for (tem = TYPE_FIELDS (type); tem; tem = TREE_CHAIN (tem))
{
if (tem == field
- || (TREE_TYPE (tem) == TREE_TYPE (field)
+ || (gimple_types_compatible_p (TREE_TYPE (tem),
+ TREE_TYPE (field),
+ false)
&& DECL_NONADDRESSABLE_P (tem)
== DECL_NONADDRESSABLE_P (field)
&& gimple_compare_field_offset (tem, field)))