diff options
author | Zhenqiang Chen <zhenqiang.chen@linaro.org> | 2014-05-26 06:11:33 +0000 |
---|---|---|
committer | Zhenqiang Chen <zqchen@gcc.gnu.org> | 2014-05-26 06:11:33 +0000 |
commit | 88f32f0f924ccac7635c4491292327cbe30939e2 (patch) | |
tree | f3d69779fbdc0c50143895e374af8c05446ae798 /gcc/testsuite | |
parent | 97ae6b6443470560d8ab692501dcec00b20dc02b (diff) | |
download | gcc-88f32f0f924ccac7635c4491292327cbe30939e2.zip gcc-88f32f0f924ccac7635c4491292327cbe30939e2.tar.gz gcc-88f32f0f924ccac7635c4491292327cbe30939e2.tar.bz2 |
re PR rtl-optimization/61220 (ICE on valid code at -O2 on x86_64-linux-gnu in maybe_record_trace_start, at dwarf2cfi.c:2239)
ChangeLog:
2014-05-26 Zhenqiang Chen <zhenqiang.chen@linaro.org>
PR rtl-optimization/61220
Part of PR rtl-optimization/61225
* shrink-wrap.c (move_insn_for_shrink_wrap): Skip SP and FP adjustment
insn; skip split_edge for a block with only one successor.
testsuite/ChangeLog:
2014-05-26 Zhenqiang Chen <zhenqiang.chen@linaro.org>
* gcc.dg/pr61220.c: New test.
* gcc.dg/shrink-wrap-loop.c: Disable for x86_64 -m32 mode.
From-SVN: r210921
Diffstat (limited to 'gcc/testsuite')
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/pr61220.c | 39 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/shrink-wrap-loop.c | 2 |
3 files changed, 45 insertions, 1 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 49e4bb7..5157ad8 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2014-05-26 Zhenqiang Chen <zhenqiang.chen@linaro.org> + + * gcc.dg/pr61220.c: New test. + * gcc.dg/shrink-wrap-loop.c: Disable for x86_64 -m32 mode. + 2014-05-25 Tobias Burnus <burnus@net-b.de> * gfortran.dg/coarray_10.f90: Update dg-warning. diff --git a/gcc/testsuite/gcc.dg/pr61220.c b/gcc/testsuite/gcc.dg/pr61220.c new file mode 100644 index 0000000..d45d1c3 --- /dev/null +++ b/gcc/testsuite/gcc.dg/pr61220.c @@ -0,0 +1,39 @@ +/* { dg-do compile } */ +/* { dg-options "-O2 -g" } */ + +int a, c, d, e, f, g, h, i, j, k; + +struct S0 +{ + int f0; + int f1; + int f2; +}; + +struct S1 +{ + int f0; + int f1; + struct S0 f2; +} b; + +void +fn1 (struct S1 p) +{ + for (; k; k++) + h = j ? a : a - 1; + d &= i; +} + +int +main () +{ + int l[5] = { 0 }; + fn1 (b); + for (c = 0; c < 3; c++) + for (g = 0; g < 3; g++) + l[c * 2] = e = l[c]; + if (f) + fn1 (b); + return 0; +} diff --git a/gcc/testsuite/gcc.dg/shrink-wrap-loop.c b/gcc/testsuite/gcc.dg/shrink-wrap-loop.c index 17dca4e..e72edfa 100644 --- a/gcc/testsuite/gcc.dg/shrink-wrap-loop.c +++ b/gcc/testsuite/gcc.dg/shrink-wrap-loop.c @@ -1,4 +1,4 @@ -/* { dg-do compile { target { { x86_64-*-* } || { arm_thumb2 } } } } */ +/* { dg-do compile { target { { x86_64-*-* && lp64 } || { arm_thumb2 } } } } */ /* { dg-options "-O2 -fdump-rtl-pro_and_epilogue" } */ int foo (int *p1, int *p2); |