diff options
author | vmakarov <vmakarov@138bc75d-0d04-0410-961f-82ee72b054a4> | 2015-07-31 13:52:09 +0000 |
---|---|---|
committer | vmakarov <vmakarov@138bc75d-0d04-0410-961f-82ee72b054a4> | 2015-07-31 13:52:09 +0000 |
commit | b6c67506a886e9d88969575ceda7b693119ab60a (patch) | |
tree | d8a992ab07f6adde71e98317127fe5a1633c5436 /gcc/testsuite | |
parent | 3980a4288a35d87dea11682bd95d02061012b667 (diff) | |
download | gcc-b6c67506a886e9d88969575ceda7b693119ab60a.tar.gz |
2015-07-31 Vladimir Makarov <vmakarov@redhat.com>
PR debug/66691
* lra-int.h (lra_substitute_pseudo): Add a parameter.
(lra_substitute_pseudo_within_insn): Ditto.
* lra.c (lra_substitute_pseudo): Add a parameter. Simplify subreg
of constant.
(lra_substitute_pseudo_within_insn): Add a parameter. Transfer it
to lra_substitute_pseudo.
* lra-lives.c (process_bb_lives): Add an argument to
lra_substitute_pseudo_within_insn call.
* lra-constraints.c (inherit_reload_reg, split_reg): Add an
argument to lra_substitute_pseudo and
lra_substitute_pseudo_within_insn calls.
(remove_inheritance_pseudos, undo_optional_reloads): Ditto.
2015-07-31 Vladimir Makarov <vmakarov@redhat.com>
PR debug/66691
* gcc.target/i386/pr66691.c: New.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-5-branch@226442 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/testsuite')
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/gcc.target/i386/pr66691.c | 64 |
2 files changed, 69 insertions, 0 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 8cbf0d8178f..cb37cc288d9 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2015-07-31 Vladimir Makarov <vmakarov@redhat.com> + + PR debug/66691 + * gcc.target/i386/pr66691.c: New. + 2015-07-28 Alex Velenko <Alex.Velenko@arm.com> backport from trunk: diff --git a/gcc/testsuite/gcc.target/i386/pr66691.c b/gcc/testsuite/gcc.target/i386/pr66691.c new file mode 100644 index 00000000000..da78808acd2 --- /dev/null +++ b/gcc/testsuite/gcc.target/i386/pr66691.c @@ -0,0 +1,64 @@ +/* PR debug/66691 */ +/* { dg-do compile } */ +/* { dg-require-effective-target ia32 } */ +/* { dg-options "-O3 -g -mtune=generic -march=i686" } */ + +unsigned int a; +int b[2], c, d, e, f, g, h, i, k[8], l, m, s, t, w; +static int j; + +void +fn1 (long long p) +{ + int t = p; + c = c ^ b[c ^ (t & 1)]; +} + +static void +fn2 (long long p) +{ + c = c ^ b[1 ^ (d & 1)]; + fn1 (p >> 1 & 1); + fn1 (p >> 2); +} + +static void +fn3 () +{ + unsigned char p; + f = g = 0; + for (h = 0; h < 6; h++) + { + for (s = 0; s < 7; s++) + if (k[s+1]) + g = 0; + else + for (j = 0; j < 2; j++) + ; + t = j > 2 ? 0 : 1 >> j; + } + if (l) + { + short q[2]; + q[0] = q[1] = 0; + if (m) + for (i = 0; i < 2; i++) + { + unsigned char r = q[i]; + p = f ? r % f : r; + e = ((p > 0) <= (q[i] ^ 1)) + a; + if (k[1]) + for (e = 0; e != 18; ++e) + k[0] = 0; + } + } +} + +int +main () +{ + fn3 (); + fn2 (w); + fn2 (j); + return 0; +} |