[Bug middle-end/85955] ICE in fold_convert_loc, at fold-const.c:2408

rguenth at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Tue May 29 10:31:00 GMT 2018


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

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

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |ASSIGNED
          Component|c                           |middle-end
           Assignee|unassigned at gcc dot gnu.org      |rguenth at gcc dot gnu.org

--- Comment #2 from Richard Biener <rguenth at gcc dot gnu.org> ---
Mine as well.  We are gimplifying

3791          if (!update_call_from_tree (gsi, result))
3792            gimplify_and_update_call_from_tree (gsi, result);
3793          return true;
(gdb) p debug_generic_expr (result)
*sinx_3(D) = IMAGPART_EXPR <SAVE_EXPR <__builtin_cexpi (x_2(D))>>;, *cosx_4(D)
= REALPART_EXPR <SAVE_EXPR <__builtin_cexpi (x_2(D))>>;

and as part of that failing the store because of the arg mismatch.  This is
because gimple_builtin_call_types_compatible_p uses useless_type_conversion_p
and double * and double ** do not require a conversion in GIMPLE.


More information about the Gcc-bugs mailing list