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

Jakub Jelinek <jakub at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
   Target Milestone|---                         |10.0

--- Comment #3 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
The fix for the ICE is easy:
--- gcc/ipa-cp.c.jj     2019-12-06 00:40:40.000000000 +0100
+++ gcc/ipa-cp.c        2019-12-10 11:57:10.354999085 +0100
@@ -2400,7 +2400,7 @@ propagate_vr_across_jump_function (cgrap
                                                     NOP_EXPR,
                                                     param_type,
                                                     jfunc->m_vr->type ()))
-               vr.intersect (*jfunc->m_vr);
+               vr.intersect (jvr);
            }
          return dest_lat->meet_with (&vr);
        }
but what isn't quite obvious why the code ever tries to intersect the range [0,
0xffffffffUL] which I'd bet comes from corge passing unsigned int to an
unsigned long argument, and ~[0B, 0B] with char[1] * type which must come from
quux calling bar with "" argument which is certainly non-NULL.  I mean, what do
those two ranges have in common?

Reply via email to