Test which exposed a gcse bug at one time.
authorDon Lindsay <dlindsay@gcc.gnu.org>
Tue, 14 Nov 2000 18:42:53 +0000 (18:42 +0000)
committerDon Lindsay <dlindsay@gcc.gnu.org>
Tue, 14 Nov 2000 18:42:53 +0000 (18:42 +0000)
From-SVN: r37463

gcc/testsuite/gcc.c-torture/execute/20001101.c [new file with mode: 0644]

diff --git a/gcc/testsuite/gcc.c-torture/execute/20001101.c b/gcc/testsuite/gcc.c-torture/execute/20001101.c
new file mode 100644 (file)
index 0000000..930ee32
--- /dev/null
@@ -0,0 +1,40 @@
+extern void abort(void);
+                        
+typedef struct
+{
+  unsigned int unchanging : 1;
+} struc, *rtx;
+
+rtx dummy ( int *a, rtx *b)
+{
+  *a = 1;
+  *b = (rtx)7;
+  return (rtx)1;
+}
+
+void bogus (insn, thread, delay_list)
+     rtx insn;
+     rtx thread;
+     rtx delay_list;
+{
+  rtx new_thread;
+  int must_annul;
+
+  delay_list = dummy ( &must_annul, &new_thread);
+  if (delay_list == 0 &&  new_thread )
+    {
+      thread = new_thread;
+    }
+  if (delay_list && must_annul)
+    insn->unchanging = 1;
+  if (new_thread != thread )
+    abort();
+}
+
+int main()
+{
+  struc baz;
+  bogus (&baz, (rtx)7, 0);
+  exit(0);
+  return 0;
+}