summaryrefslogtreecommitdiff
path: root/gcc/testsuite
diff options
context:
space:
mode:
authorvmakarov <vmakarov@138bc75d-0d04-0410-961f-82ee72b054a4>2015-07-31 13:52:09 +0000
committervmakarov <vmakarov@138bc75d-0d04-0410-961f-82ee72b054a4>2015-07-31 13:52:09 +0000
commitb6c67506a886e9d88969575ceda7b693119ab60a (patch)
treed8a992ab07f6adde71e98317127fe5a1633c5436 /gcc/testsuite
parent3980a4288a35d87dea11682bd95d02061012b667 (diff)
downloadgcc-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/ChangeLog5
-rw-r--r--gcc/testsuite/gcc.target/i386/pr66691.c64
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;
+}