[Bug middle-end/90648] [8/9/10 Regression] ICE tree check: accessed operand 4 of call_expr with 3 operands in generic_simplify_MULT_EXPR, at generic-match.c:27222
jakub at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Mon May 27 18:51:00 GMT 2019
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90648
Jakub Jelinek <jakub at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|ASSIGNED |NEW
Assignee|jakub at gcc dot gnu.org |unassigned at gcc dot gnu.org
--- Comment #2 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
extern double copysign ();
double foo (double x)
{
return x * copysign ();
}
ICEs similarly as well, it isn't specific to the _FloatN types (though
copysignf and float instead of copysign and double doesn't, because float isn't
self-promoting and the C FE handles it differently during builtin handling.
That said, I'd say this is a genmatch bug, in that it doesn't do any argument
verification of the builtins, neither in generic nor gimple, and happily uses
CALL_EXPR_ARG (op0, 0) and CALL_EXPR_ARG (op0, 1) or similarly in gimple, when
it didn't even verify the builtin has that many arguments.
More information about the Gcc-bugs
mailing list