[Bug tree-optimization/69117] [6 Regression] wrong code at -O1 -fstrict-aliasing

hubicka at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Tue Jan 12 12:44:00 GMT 2016


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69117

--- Comment #4 from Jan Hubicka <hubicka at gcc dot gnu.org> ---
Hmm, OK, what seems to be done is the following.  We end up calling 
vn_reference_lookup_3 on
 *e.3_12 = g.4_13;
but we valueize the LHS as
(gdb) p debug_generic_stmt (base1)
MEM[(int * *)_10];

this seems fine. Eventually we call indirect_ref_may_alias_decl_p and that
takes away the MEM_REF comparing *_10 with d and that returns false in:

  /* They also cannot alias if the pointer may not point to the decl.  */       
  if (!ptr_deref_may_alias_decl_p (ptr1, base2))                                
    return false;                                                               

I think ptr_deref_may_alias_decl_p can not ignore type from MEM_REF.


More information about the Gcc-bugs mailing list