http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57287

Richard Biener <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |xinliangli at gmail dot com

--- Comment #7 from Richard Biener <rguenth at gcc dot gnu.org> ---
tree-ssa-uninit.c somehow fails to properly handle abnormal edges.

Index: tree-ssa-uninit.c
===================================================================
--- tree-ssa-uninit.c   (revision 199249)
+++ tree-ssa-uninit.c   (working copy)
@@ -1919,7 +1919,8 @@ find_uninit_use (gimple phi, unsigned un
             }

           worklist->safe_push (use_stmt);
-          pointer_set_insert (possibly_undefined_names, phi_result);
+         if (!SSA_NAME_OCCURS_IN_ABNORMAL_PHI (phi_result))
+           pointer_set_insert (possibly_undefined_names, phi_result);
         }
     }

fixes the issue but that doesn't look the very best place to fix it
and it doesn't look fully correct.  It should be enough to not consider
values flowing across abnormal edges - but that's already done (but somehow
not in a complete manner).

I'm trying to reduce the testcase to get a better idea what is going wrong
here.

Reply via email to