https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63166
--- Comment #4 from Jan Hubicka <hubicka at gcc dot gnu.org> ---
Aha, is_global_var test going wrong way. I am testing:
Index: ipa-prop.c
===================================================================
--- ipa-prop.c (revision 215023)
+++ ipa-prop.c (working copy)
@@ -1537,8 +1537,8 @@ compute_known_type_jump_func (tree op, s
call, current_function_decl)
/* Even if the var seems to be in construction by inline call stack,
we may work out the actual type by walking memory writes. */
- && (!is_global_var (base)
- && detect_type_change (op, base, expected_type, call, jfunc,
offset)))
+ && (is_global_var (base)
+ || detect_type_change (op, base, expected_type, call, jfunc,
offset)))
return;
ipa_set_jf_known_type (jfunc, offset, TREE_TYPE (base),