This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug middle-end/85955] ICE in fold_convert_loc, at fold-const.c:2408
- From: "rguenth at gcc dot gnu.org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Tue, 29 May 2018 10:31:40 +0000
- Subject: [Bug middle-end/85955] ICE in fold_convert_loc, at fold-const.c:2408
- Auto-submitted: auto-generated
- References: <bug-85955-4@http.gcc.gnu.org/bugzilla/>
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.