Commit f78b86c0 by Michael Matz Committed by Michael Matz

re PR middle-end/43730 (internal compiler error: in…

re PR middle-end/43730 (internal compiler error: in expand_builtin_interclass_mathfn, at builtins.c:2313)

	PR middle-end/43730
	* builtins.c (expand_builtin_interclass_mathfn): Also create
	a register if the predicate doesn't match.

testsuite/
	* gcc.dg/pr43730.c: New test.

From-SVN: r158268
parent 0e6229c2
2010-04-13 Michael Matz <matz@suse.de>
PR middle-end/43730
* builtins.c (expand_builtin_interclass_mathfn): Also create
a register if the predicate doesn't match.
2010-04-13 Diego Novillo <dnovillo@google.com>
* Makefile.in (c-pch.o, ggc-common.o): Depend on timevar.h.
......
......@@ -2316,7 +2316,8 @@ expand_builtin_interclass_mathfn (tree exp, rtx target, rtx subtarget)
tree orig_arg = arg;
/* Make a suitable register to place result in. */
if (!target
|| GET_MODE (target) != TYPE_MODE (TREE_TYPE (exp)))
|| GET_MODE (target) != TYPE_MODE (TREE_TYPE (exp))
|| !insn_data[icode].operand[0].predicate (target, GET_MODE (target)))
target = gen_reg_rtx (TYPE_MODE (TREE_TYPE (exp)));
gcc_assert (insn_data[icode].operand[0].predicate
......
2010-04-13 Michael Matz <matz@suse.de>
PR middle-end/43730
* gcc.dg/pr43730.c: New test.
2010-04-13 Michael Matz <matz@suse.de>
* gcc.dg/tree-ssa/negate.c: New testcase.
2010-04-13 Richard Guenther <rguenther@suse.de>
......
/* { dg-do compile } */
/* { dg-options "-O0" } */
extern int (isinfl)(long double);
int
bugfun(long double x, long double y)
{
int result;
if (isinfl(x))
result = isinfl(y);
else
{
int kx, ky;
kx = ky = 1;
result = (kx == ky);
}
return (result);
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment