Commit 606a9a8c by Jan Hubicka Committed by Jan Hubicka

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
parent 14ec49a7
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
(type_streaming_finished): New static var.
(gimple_register_canonical_type_1): Return updated hash; handle ODR
......
......@@ -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);
}
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment