Commit 69e1a1a3 by Bill Schmidt Committed by William Schmidt

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
parent 637fd8b3
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> 2012-10-22 Sharad Singhai <singhai@google.com>
* dumpfile.c (dump_phase_enabled_p): Renamed dump_enabled_p. Update * dumpfile.c (dump_phase_enabled_p): Renamed dump_enabled_p. Update
...@@ -366,6 +366,7 @@ find_basis_for_candidate (slsr_cand_t c) ...@@ -366,6 +366,7 @@ find_basis_for_candidate (slsr_cand_t c)
slsr_cand_t one_basis = chain->cand; slsr_cand_t one_basis = chain->cand;
if (one_basis->kind != c->kind if (one_basis->kind != c->kind
|| one_basis->cand_stmt == c->cand_stmt
|| !operand_equal_p (one_basis->stride, c->stride, 0) || !operand_equal_p (one_basis->stride, c->stride, 0)
|| !types_compatible_p (one_basis->cand_type, c->cand_type) || !types_compatible_p (one_basis->cand_type, c->cand_type)
|| !dominated_by_p (CDI_DOMINATORS, || !dominated_by_p (CDI_DOMINATORS,
......
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> 2012-10-22 Richard Biener <rguenther@suse.de>
PR tree-optimization/55011 PR tree-optimization/55011
......
/* 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);
}
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