aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite
diff options
context:
space:
mode:
authorPaolo Bonzini <bonzini@gnu.org>2008-07-17 09:07:31 +0000
committerPaolo Bonzini <bonzini@gcc.gnu.org>2008-07-17 09:07:31 +0000
commitb08c51086fceec9cd27858dae48bf55fbbfccc1c (patch)
tree281a1a220070390be3fb15977c0425a4318f99c9 /gcc/testsuite
parent8a63781b058d0ef87b54a648cd00fd2e96cd69c1 (diff)
downloadgcc-b08c51086fceec9cd27858dae48bf55fbbfccc1c.zip
gcc-b08c51086fceec9cd27858dae48bf55fbbfccc1c.tar.gz
gcc-b08c51086fceec9cd27858dae48bf55fbbfccc1c.tar.bz2
re PR middle-end/36753 (Forward propagation interacts badly with global register variable)
gcc: 2008-07-17 Paolo Bonzini <bonzini@gnu.org> PR rtl-optimization/36753 * fwprop.c (use_killed_between): Don't shortcut single-definition global registers. gcc/testsuite: 2008-07-17 Paolo Bonzini <bonzini@gnu.org> PR rtl-optimization/36753 * gcc.target/i386/pr36753.c: New. From-SVN: r137913
Diffstat (limited to 'gcc/testsuite')
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/gcc.target/i386/pr36753.c31
2 files changed, 36 insertions, 0 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 54da1a1..ec7dc05 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2008-07-17 Paolo Bonzini <bonzini@gnu.org>
+
+ PR rtl-optimization/36753
+ * gcc.target/i386/pr36753.c: New.
+
2008-07-17 Tobias Burnus <burnus@net-b.de>
PR fortran/36825
diff --git a/gcc/testsuite/gcc.target/i386/pr36753.c b/gcc/testsuite/gcc.target/i386/pr36753.c
new file mode 100644
index 0000000..2d43d42
--- /dev/null
+++ b/gcc/testsuite/gcc.target/i386/pr36753.c
@@ -0,0 +1,31 @@
+/* { dg-options "-O2" } */
+/* { dg-do run } */
+
+#if defined __i386__
+#define REG "edi"
+#else
+#define REG "r14"
+#endif
+
+register unsigned long *ds asm(REG);
+
+extern void abort (void);
+
+__attribute__ ((noinline)) void
+test (void)
+{
+ *++ds = 31337;
+}
+
+int
+main ()
+{
+ unsigned long stack[2];
+ stack[0] = 0;
+ stack[1] = 0;
+ ds = stack;
+ test ();
+ if (ds != stack + 1 || *ds != 31337)
+ abort ();
+ return 0;
+}