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

--- Comment #4 from Richard Biener <rguenth at gcc dot gnu.org> ---
(In reply to Richard Biener from comment #3)
> bool
> propagate_bits_across_jump_function (cgraph_edge *cs, int idx,
>                                      ipa_jump_func *jfunc,
>                                      ipcp_bits_lattice *dest_lattice)
> {
> ...
>   /* For K&R C programs, ipa_get_type() could return NULL_TREE.
>      Avoid the transform for these cases.  */
>   if (!parm_type)
>     {
>       if (dump_file && (dump_flags & TDF_DETAILS))
>         fprintf (dump_file, "Setting dest_lattice to bottom, because"
>                             " param %i type is NULL for %s\n", idx,
>                             cs->callee->name ());
> 
>       return dest_lattice->set_to_bottom ();
>     }
> 
>   unsigned precision = TYPE_PRECISION (parm_type);
>   signop sgn = TYPE_SIGN (parm_type);
> 
> those two accesses only work for INTEGRAL_TYPE_P types.  So maybe
> the !parm_type should be instead
> 
>    if (!parm_type || !INTEGRAL_TYPE_P (parm_type))

!(INTEGRAL_TYPE_P (parm_type) || POINTER_TYPE_P (parm_type))

of course.

> ? (with appropriate adjustment of the dump message)

Does IPA-CP in any way handle jump functions of float types?

Reply via email to