lto-common.c (lto_register_canonical_types_for_odr_types): Copy CXX_ODR_P from the main variant.
* lto-common.c (lto_register_canonical_types_for_odr_types): Copy CXX_ODR_P from the main variant. From-SVN: r272923
This commit is contained in:
parent
14ec49a753
commit
606a9a8c72
2 changed files with 16 additions and 2 deletions
|
@ -1,3 +1,8 @@
|
|||
2019-06-27 Jan Hubicka <jh@suse.cz>
|
||||
|
||||
* lto-common.c (lto_register_canonical_types_for_odr_types):
|
||||
Copy CXX_ODR_P from the main variant.
|
||||
|
||||
2019-06-27 Jan Hubicka <jh@suse.cz>
|
||||
|
||||
* lto-common.c: tree-pretty-print.h
|
||||
|
|
|
@ -568,8 +568,17 @@ lto_register_canonical_types_for_odr_types ()
|
|||
|
||||
/* Register all remaining types. */
|
||||
FOR_EACH_VEC_ELT (*types_to_register, i, t)
|
||||
if (!TYPE_CANONICAL (t))
|
||||
gimple_register_canonical_type (t);
|
||||
{
|
||||
/* For pre-streamed types like va-arg it is possible that main variant
|
||||
is !CXX_ODR_P while the variant (which is streamed) is.
|
||||
Copy CXX_ODR_P to make type verifier happy. This is safe because
|
||||
in canonical type calculation we only consider main variants.
|
||||
However we can not change this flag before streaming is finished
|
||||
to not affect tree merging. */
|
||||
TYPE_CXX_ODR_P (t) = TYPE_CXX_ODR_P (TYPE_MAIN_VARIANT (t));
|
||||
if (!TYPE_CANONICAL (t))
|
||||
gimple_register_canonical_type (t);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue