diff options
author | Richard Guenther <rguenther@suse.de> | 2010-11-17 15:47:17 +0000 |
---|---|---|
committer | Richard Biener <rguenth@gcc.gnu.org> | 2010-11-17 15:47:17 +0000 |
commit | 3c760b86e19756de8492ff9acadd9e884a2031e1 (patch) | |
tree | 4c31d683e22d971e8cbaa900ff19acb37f3b82e8 /gcc | |
parent | a222c01a3c1303a06effdaae303394edcebf6c7b (diff) | |
download | gcc-3c760b86e19756de8492ff9acadd9e884a2031e1.zip gcc-3c760b86e19756de8492ff9acadd9e884a2031e1.tar.gz gcc-3c760b86e19756de8492ff9acadd9e884a2031e1.tar.bz2 |
re PR lto/46504 (LTO failed on 483.xalancbmk in SPEC CPU 2006)
2010-11-17 Richard Guenther <rguenther@suse.de>
PR lto/46504
* gimple.c (gimple_register_canonical_type): Make sure to only
make type leaders canonical types.
From-SVN: r166870
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/gimple.c | 4 |
2 files changed, 10 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index b770487..1a7bb1e 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2010-11-17 Richard Guenther <rguenther@suse.de> + + PR lto/46504 + * gimple.c (gimple_register_canonical_type): Make sure to only + make type leaders canonical types. + 2010-11-17 Michael Matz <matz@suse.de> * timevar.def (TV_IPA_OPT, TV_EARLY_LOCAL, TV_OPTIMIZE, diff --git a/gcc/gimple.c b/gcc/gimple.c index 6704456..5f6b8d4 100644 --- a/gcc/gimple.c +++ b/gcc/gimple.c @@ -4398,6 +4398,10 @@ gimple_register_canonical_type (tree t) if (TYPE_CANONICAL (t)) return TYPE_CANONICAL (t); + /* Always register the type itself first so that if it turns out + to be the canonical type it will be the one we merge to as well. */ + t = gimple_register_type (t); + /* Always register the main variant first. This is important so we pick up the non-typedef variants as canonical, otherwise we'll end up taking typedef ids for structure tags during comparison. */ |