aboutsummaryrefslogtreecommitdiff
path: root/gcc/lto
diff options
context:
space:
mode:
authorRichard Guenther <rguenther@suse.de>2010-06-13 14:14:17 +0000
committerRichard Biener <rguenth@gcc.gnu.org>2010-06-13 14:14:17 +0000
commit4a2ac96fb7e845adc573a3accfafdd534e179156 (patch)
tree35daaa9972d65e4f2ede54da386f2214ce5ac3cb /gcc/lto
parentba90d838257853023abae85f8c393eda41c50189 (diff)
downloadgcc-4a2ac96fb7e845adc573a3accfafdd534e179156.zip
gcc-4a2ac96fb7e845adc573a3accfafdd534e179156.tar.gz
gcc-4a2ac96fb7e845adc573a3accfafdd534e179156.tar.bz2
lto-streamer-in.c (lto_input_ts_type_tree_pointers): Do not stream but initialize TYPE_CANONICAL to NULL.
2010-06-13 Richard Guenther <rguenther@suse.de> * lto-streamer-in.c (lto_input_ts_type_tree_pointers): Do not stream but initialize TYPE_CANONICAL to NULL. (lto_output_ts_type_tree_pointers): Do not stream TYPE_CANONICAL. * gimple.c (gimple_types_compatible_p): Disregard TYPE_STRUCTURAL_EQUALITY_P. (gimple_register_type): Use TYPE_CANONICAL as cache. * lto-streamer.c (lto_record_common_node): Zero TYPE_CANONICAL before registering common types. * config/i386/i386.c (ix86_function_arg_boundary): Do not use TYPE_CANONICAL, instead use TYPE_MAIN_VARIANT. * tree.h (TYPE_CANONICAL): Clarify documentation. lto/ * lto.c (lto_fixup_type): Do not register or fixup TYPE_CANONICAL. From-SVN: r160679
Diffstat (limited to 'gcc/lto')
-rw-r--r--gcc/lto/ChangeLog4
-rw-r--r--gcc/lto/lto.c6
2 files changed, 9 insertions, 1 deletions
diff --git a/gcc/lto/ChangeLog b/gcc/lto/ChangeLog
index 0da0eca..c3618b6 100644
--- a/gcc/lto/ChangeLog
+++ b/gcc/lto/ChangeLog
@@ -1,3 +1,7 @@
+2010-06-13 Richard Guenther <rguenther@suse.de>
+
+ * lto.c (lto_fixup_type): Do not register or fixup TYPE_CANONICAL.
+
2010-06-09 Kai Tietz <kai.tietz@onevision.com>
* lto.c (lto_resolution_read): Pre-initialize local variable r.
diff --git a/gcc/lto/lto.c b/gcc/lto/lto.c
index 740a8b8..d969a10 100644
--- a/gcc/lto/lto.c
+++ b/gcc/lto/lto.c
@@ -1087,7 +1087,11 @@ lto_fixup_type (tree t, void *data)
else
LTO_FIXUP_SUBTREE (TYPE_CONTEXT (t));
}
- LTO_REGISTER_TYPE_AND_FIXUP_SUBTREE (TYPE_CANONICAL (t));
+
+ /* TYPE_CANONICAL does not need to be fixed up, instead it should
+ always point to ourselves at this time as we never fixup
+ non-canonical ones. */
+ gcc_assert (TYPE_CANONICAL (t) == t);
/* The following re-creates proper variant lists while fixing up
the variant leaders. We do not stream TYPE_NEXT_VARIANT so the