https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65316

--- Comment #12 from Jan Hubicka <hubicka at gcc dot gnu.org> ---
Author: hubicka
Date: Mon Mar  9 00:29:14 2015
New Revision: 221275

URL: https://gcc.gnu.org/viewcvs?rev=221275&root=gcc&view=rev
Log:

    PR lto/65316
    * ipa-utils.h (types_odr_comparable): Add strict argument.
    * ipa-devirt.c: Fix whitespace;
    (odr_hasher): Remove.
    (odr_name_hasher, odr_vtable_hasher): New hashers.
    (can_be_name_hashed_p): New predicate.
    (hash_type_name): remove.
    (hash_odr_name): New.
    (odr_name_hasher::hash): new.
    (can_be_vtable_hashed_p): New.
    (hash_odr_vtable): New.
    (odr_vtable_hasher::hash): New.
    (types_same_for_odr): Add strict parameter.
    (types_odr_comparable): Likewise.
    (odr_name_hasher::equal): New.
    (odr_vtable_hasher::equal): New.
    (odr_name_hasher::remove): New.
    (odr_hash_type): Change to hash_table<odr_name_hasher>.
    (odr_vtable_hash_type): New.
    (odr_vtable_hash): New.
    (odr_subtypes_equivalent_p): Do strict comparsion.
    (add_type_duplicate): Merge type names; cleanup; avoid type
    duplicates.
    (register_odr_type): Initialize vtable hash.
    (build_type_inheritance_graph): Likewise
    (get_odr_type): Reorg to use two hashes.
    (dump_possible_polymorphic_call_targets): Move sanity check after debug
    output.
    (ipa_devirt): Dump type_inheritance_graph.
    (types_same_for_odr): Add strict mode.
    * g++.dg/lto/pr65316_0.C: New testcase.
    * g++.dg/lto/pr65316_1.C: New testcase.

Added:
    trunk/gcc/testsuite/g++.dg/lto/pr65316_0.C
    trunk/gcc/testsuite/g++.dg/lto/pr65316_1.C
Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/ipa-devirt.c
    trunk/gcc/ipa-utils.h
    trunk/gcc/testsuite/ChangeLog
    trunk/gcc/tree.h

Reply via email to