------- Comment #2 from rguenth at gcc dot gnu dot org 2009-08-13 15:44 ------- Subject: Bug 41032
Author: rguenth Date: Thu Aug 13 15:44:01 2009 New Revision: 150719 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=150719 Log: 2009-08-13 Richard Guenther <rguent...@suse.de> PR lto/41032 * tree.c (free_lang_data): NULL the types_compatible_p langhook. * gimple.c (gtc_visited): Global type compatibility hashtable. (compare_field_offset): New helper function. (gimple_compare_types): Fold into ... (gimple_types_compatible_p): ... here. Types with differing hash values are not compatible. Adjust function now that it is no longer used as types_compatible_p langhook. Complete incomplete pointer targets. (iterative_hash_type_name): New helper function. (iterative_hash_gimple_type): Do not hash type sizes. Do not recurse into aggregate pointer targets. Properly hash complex and vector types. Hash the name of record types. (print_gimple_types_stats): Print stats of gtc_visited. * lto-symtab.c (lto_merge_qualifiers): Remove. (lto_merge_types): Likewise. (merge_incomplete_and_complete_type): New helper function. (maybe_merge_incomplete_and_complete_type): Likewise. (lto_symtab_compatible): Remove do_warn arg. Complete types during decl merging. Forcefully merge more types than elsewhere. Do not compare DECL_MODE. (lto_symtab_prevailing_decl): Use gimple_types_compatible_p, not lto_symtab_compatible for finding the decl we merged with. lto/ * lto-lang.c (LANG_HOOKS_TYPES_COMPATIBLE_P): Define to NULL. * gcc.dg/lto/20090812_0.c: New testcase. * gcc.dg/lto/20090812_1.c: Likewise. Added: branches/lto/gcc/testsuite/gcc.dg/lto/20090812_0.c branches/lto/gcc/testsuite/gcc.dg/lto/20090812_1.c Modified: branches/lto/gcc/ChangeLog.lto branches/lto/gcc/gimple.c branches/lto/gcc/lto-symtab.c branches/lto/gcc/lto/ChangeLog branches/lto/gcc/lto/lto-lang.c branches/lto/gcc/testsuite/ChangeLog.lto branches/lto/gcc/tree.c -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41032