https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70594
--- Comment #42 from Jakub Jelinek <jakub at gcc dot gnu.org> --- I see a difference when tree-ssa-pre.c calls context.get_dynamic_type (instance, OBJ_TYPE_REF_OBJECT (fn), otr_type, stmt); in get_dynamic_type, right after the first walk_aliased_vdefs in there, in one invocation I get: $16 = {offset = 0, instance = <ssa_name 0x7ffff0ef22d0>, vtbl_ptr_ref = <component_ref 0x7fffede2e4e0>, otr_type = <record_type 0x7fffef4ec540 CENSORED>, known_current_type = <tree 0x0>, known_current_offset = 0, speculative = 14, type_maybe_changed = false, multiple_types_encountered = false, seen_unanalyzed_store = true} and in the other $15 = {offset = 0, instance = <ssa_name 0x7ffff1052c18>, vtbl_ptr_ref = <component_ref 0x7fffed95d780>, otr_type = <record_type 0x7fffef6873f0 CENSORED>, known_current_type = <tree 0x0>, known_current_offset = 0, speculative = 13, type_maybe_changed = false, multiple_types_encountered = false, seen_unanalyzed_store = false}