re PR tree-optimization/55008 (Internal compiler error : verify_ssa failed)
gcc: 2012-10-22 Bill Schmidt <wschmidt@linux.vnet.ibm.com> PR tree-optimization/55008 * gimple-ssa-strength-reduction.c (find_basis_for_candidate): Don't allow a candidate to be a basis for itself under another interpretation. gcc/testsuite: 2012-10-22 Bill Schmidt <wschmidt@linux.vnet.ibm.com> PR tree-optimization/55008 * gcc.dg/tree-ssa/pr55008.c: New test. From-SVN: r192696
This commit is contained in:
parent
637fd8b3be
commit
69e1a1a34f
4 changed files with 29 additions and 0 deletions
|
@ -1,3 +1,9 @@
|
|||
2012-10-22 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
|
||||
|
||||
PR tree-optimization/55008
|
||||
* gimple-ssa-strength-reduction.c (find_basis_for_candidate): Don't
|
||||
allow a candidate to be a basis for itself under another interpretation.
|
||||
|
||||
2012-10-22 Sharad Singhai <singhai@google.com>
|
||||
|
||||
* dumpfile.c (dump_phase_enabled_p): Renamed dump_enabled_p. Update
|
||||
|
|
|
@ -366,6 +366,7 @@ find_basis_for_candidate (slsr_cand_t c)
|
|||
slsr_cand_t one_basis = chain->cand;
|
||||
|
||||
if (one_basis->kind != c->kind
|
||||
|| one_basis->cand_stmt == c->cand_stmt
|
||||
|| !operand_equal_p (one_basis->stride, c->stride, 0)
|
||||
|| !types_compatible_p (one_basis->cand_type, c->cand_type)
|
||||
|| !dominated_by_p (CDI_DOMINATORS,
|
||||
|
|
|
@ -1,3 +1,8 @@
|
|||
2012-10-22 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
|
||||
|
||||
PR tree-optimization/55008
|
||||
* gcc.dg/tree-ssa/pr55008.c: New test.
|
||||
|
||||
2012-10-22 Richard Biener <rguenther@suse.de>
|
||||
|
||||
PR tree-optimization/55011
|
||||
|
|
17
gcc/testsuite/gcc.dg/tree-ssa/pr55008.c
Normal file
17
gcc/testsuite/gcc.dg/tree-ssa/pr55008.c
Normal file
|
@ -0,0 +1,17 @@
|
|||
/* This used to fail to compile; see PR55008. */
|
||||
/* { dg-do compile } */
|
||||
/* { dg-options "-O2 -w" } */
|
||||
|
||||
typedef unsigned long long T;
|
||||
|
||||
void f(void)
|
||||
{
|
||||
int a, *p;
|
||||
|
||||
T b = 6309343725;
|
||||
|
||||
if(*p ? (b = 1) : 0)
|
||||
if(b - (a = b /= 0) ? : (a + b))
|
||||
while(1);
|
||||
}
|
||||
|
Loading…
Add table
Reference in a new issue