diff options
author | Segher Boessenkool <segher@kernel.crashing.org> | 2014-12-03 07:00:54 +0100 |
---|---|---|
committer | Segher Boessenkool <segher@gcc.gnu.org> | 2014-12-03 07:00:54 +0100 |
commit | 17adbcebf01689d2f2c5386845398d9aedbe4cb3 (patch) | |
tree | 6c118249d04560eb3de252c4a8e608732b96a03b /gcc/testsuite/gcc.target/m68k | |
parent | 51be49774041c9d2b588bb2fd139b5de7454c4f2 (diff) |
re PR rtl-optimization/52714 (ICE in fixup_reorder_chain, at cfglayout.c:880)
PR rtl-optimization/52714
* combine.c (try_combine): Allow combining two insns into two
new insns if at least one of those is a noop.
gcc/testsuite/
* gcc.target/m68k/pr52714.c: New testcase.
From-SVN: r218302
Diffstat (limited to 'gcc/testsuite/gcc.target/m68k')
-rw-r--r-- | gcc/testsuite/gcc.target/m68k/pr52714.c | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/gcc/testsuite/gcc.target/m68k/pr52714.c b/gcc/testsuite/gcc.target/m68k/pr52714.c new file mode 100644 index 00000000000..0a52a1d4d3a --- /dev/null +++ b/gcc/testsuite/gcc.target/m68k/pr52714.c @@ -0,0 +1,33 @@ +/* PR rtl-optimization/52714 + + Check that combine manages to remove the "stack == 0" test. + Without ICEing. */ + +/* { dg-do compile } */ +/* { dg-options "-O1" } */ + +int __re_compile_fastmap(unsigned char *p) +{ + unsigned char **stack; + unsigned size; + unsigned avail; + + stack = __builtin_alloca(5 * sizeof(unsigned char*)); + if (stack == 0) + return -2; + size = 5; + avail = 0; + + for (;;) { + switch (*p++) { + case 0: + if (avail == size) + return -2; + stack[avail++] = p; + } + } + + return 0; +} + +/* { dg-final { scan-assembler-not {\mtst\.l %sp\M} } } */ |