diff options
author | Jan Hubicka <jh@suse.cz> | 2019-06-27 14:07:43 +0200 |
---|---|---|
committer | Jan Hubicka <hubicka@gcc.gnu.org> | 2019-06-27 12:07:43 +0000 |
commit | a0276c00934da47fa511aa52e1973b68ffd8b2ab (patch) | |
tree | 665e4f690d6caafce10b0ade27ecfeef5909742f /gcc/ipa-utils.h | |
parent | ef874db611879d5004e1d834543e55d31f2bfe1c (diff) | |
download | gcc-a0276c00934da47fa511aa52e1973b68ffd8b2ab.zip gcc-a0276c00934da47fa511aa52e1973b68ffd8b2ab.tar.gz gcc-a0276c00934da47fa511aa52e1973b68ffd8b2ab.tar.bz2 |
class.c (layout_class_type): Set TYPE_CXX_ODR_P for as-base type copy.
* class.c (layout_class_type): Set TYPE_CXX_ODR_P for as-base
type copy.
* ipa-devirt.c (odr_type_d): Add tbaa_enabled flag.
(add_type_duplicate): When odr hash is not allocated, to nothing.
(odr_based_tbaa_p): New function.
(set_type_canonical_for_odr_type): New function.
* ipa-utils.h (enable_odr_based_tbaa, odr_based_tbaa_p,
set_type_canonical_for_odr_type): New.
* tree.c (gimple_canonical_types_compatible_p): ODR types with
ODR based TBAA are not equivalent to non-ODR types.
* lto-common.c: Include demangle.h and tree-pretty-print.h
(type_streaming_finished): New static var.
(gimple_register_canonical_type_1): Return updated hash; handle ODR
types.
(iterative_hash_canonical_type): Update use of
gimple_register_canonical_type_1.
* g++.dg/lto/alias-2_0.C: New testcase.
* g++.dg/lto/alias-2_1.C: New testcase.
From-SVN: r272749
Diffstat (limited to 'gcc/ipa-utils.h')
-rw-r--r-- | gcc/ipa-utils.h | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/gcc/ipa-utils.h b/gcc/ipa-utils.h index 64974be..22e6970 100644 --- a/gcc/ipa-utils.h +++ b/gcc/ipa-utils.h @@ -93,6 +93,9 @@ bool odr_or_derived_type_p (const_tree t); bool odr_types_equivalent_p (tree type1, tree type2); bool odr_type_violation_reported_p (tree type); tree prevailing_odr_type (tree type); +void enable_odr_based_tbaa (tree type); +bool odr_based_tbaa_p (const_tree type); +void set_type_canonical_for_odr_type (tree type, tree canonical); /* Return vector containing possible targets of polymorphic call E. If COMPLETEP is non-NULL, store true if the list is complete. |