diff options
author | Bill Schmidt <wschmidt@linux.vnet.ibm.com> | 2012-10-22 22:09:22 +0000 |
---|---|---|
committer | William Schmidt <wschmidt@gcc.gnu.org> | 2012-10-22 22:09:22 +0000 |
commit | 69e1a1a34fca2f15d0bb313c425d6a7f85a4bb4d (patch) | |
tree | 8b0b4c9c9c4b4b10d0ef4c27d2e8d0eaf432e8aa /gcc | |
parent | 637fd8b3be3cc7a8f9ceabf1756fee320e8b0ba2 (diff) | |
download | gcc-69e1a1a34fca2f15d0bb313c425d6a7f85a4bb4d.zip gcc-69e1a1a34fca2f15d0bb313c425d6a7f85a4bb4d.tar.gz gcc-69e1a1a34fca2f15d0bb313c425d6a7f85a4bb4d.tar.bz2 |
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
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/gimple-ssa-strength-reduction.c | 1 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/tree-ssa/pr55008.c | 17 |
4 files changed, 29 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 3794f50..e25a8ae 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -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 diff --git a/gcc/gimple-ssa-strength-reduction.c b/gcc/gimple-ssa-strength-reduction.c index 46600a5..0523854 100644 --- a/gcc/gimple-ssa-strength-reduction.c +++ b/gcc/gimple-ssa-strength-reduction.c @@ -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, diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index c994df9..243d74e 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -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 diff --git a/gcc/testsuite/gcc.dg/tree-ssa/pr55008.c b/gcc/testsuite/gcc.dg/tree-ssa/pr55008.c new file mode 100644 index 0000000..32af32a --- /dev/null +++ b/gcc/testsuite/gcc.dg/tree-ssa/pr55008.c @@ -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); +} + |