mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-03-19 08:20:32 +08:00
re PR c++/23624 (ICE: internal compiler error: in invert_truthvalue, at fold-const.c:2697)
2005-09-09 Richard Guenther <rguenther@suse.de> PR c++/23624 * fold-const.c (fold_ternary): Check truth_value_p before calling invert_truthvalue. * g++.dg/tree-ssa/pr23624.C: New testcase. From-SVN: r104083
This commit is contained in:
parent
dcfae47c5e
commit
3dac16bde8
@ -1,3 +1,9 @@
|
||||
2005-09-09 Richard Guenther <rguenther@suse.de>
|
||||
|
||||
PR c++/23624
|
||||
* fold-const.c (fold_ternary): Check truth_value_p before
|
||||
calling invert_truthvalue.
|
||||
|
||||
2005-09-09 Nick Clifton <nickc@redhat.com>
|
||||
|
||||
* Makefile.in (LIBGCC_DEPS): Add libgcc2.h.
|
||||
|
@ -10006,7 +10006,8 @@ fold_ternary (enum tree_code code, tree type, tree op0, tree op1, tree op2)
|
||||
|
||||
/* If the second operand is simpler than the third, swap them
|
||||
since that produces better jump optimization results. */
|
||||
if (tree_swap_operands_p (op1, op2, false))
|
||||
if (truth_value_p (TREE_CODE (arg0))
|
||||
&& tree_swap_operands_p (op1, op2, false))
|
||||
{
|
||||
/* See if this can be inverted. If it can't, possibly because
|
||||
it was a floating-point inequality comparison, don't do
|
||||
|
@ -1,3 +1,8 @@
|
||||
2005-09-09 Richard Guenther <rguenther@suse.de>
|
||||
|
||||
PR c++/23624
|
||||
* g++.dg/tree-ssa/pr23624.C: New testcase.
|
||||
|
||||
2005-09-09 Richard Sandiford <richard@codesourcery.com>
|
||||
|
||||
PR fortran/19239
|
||||
|
8
gcc/testsuite/g++.dg/tree-ssa/pr23624.C
Normal file
8
gcc/testsuite/g++.dg/tree-ssa/pr23624.C
Normal file
@ -0,0 +1,8 @@
|
||||
/* { dg-do compile } */
|
||||
|
||||
template <int>
|
||||
void f()
|
||||
{
|
||||
int *t, i;
|
||||
t[i ? 0 : i];
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user