aboutsummaryrefslogtreecommitdiffstats
path: root/gcc-4.8.1/gcc/testsuite/gcc.dg/simulate-thread/speculative-store-2.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc-4.8.1/gcc/testsuite/gcc.dg/simulate-thread/speculative-store-2.c')
-rw-r--r--gcc-4.8.1/gcc/testsuite/gcc.dg/simulate-thread/speculative-store-2.c74
1 files changed, 0 insertions, 74 deletions
diff --git a/gcc-4.8.1/gcc/testsuite/gcc.dg/simulate-thread/speculative-store-2.c b/gcc-4.8.1/gcc/testsuite/gcc.dg/simulate-thread/speculative-store-2.c
deleted file mode 100644
index d4d28f5ed..000000000
--- a/gcc-4.8.1/gcc/testsuite/gcc.dg/simulate-thread/speculative-store-2.c
+++ /dev/null
@@ -1,74 +0,0 @@
-/* { dg-do link } */
-/* { dg-options "--param allow-store-data-races=0 -O2" } */
-/* { dg-final { simulate-thread } } */
-
-#include <stdio.h>
-#include <stdlib.h>
-
-#include "simulate-thread.h"
-
-/* Test that speculative stores do not happen for --param
- allow-store-data-races=0. */
-
-int count, insns;
-
-struct obj {
- int data;
- struct obj *next;
-} *q;
-
-void simulate_thread_other_threads ()
-{
- ++insns;
- ++count;
-}
-
-int simulate_thread_step_verify ()
-{
- return 0;
-}
-
-int simulate_thread_final_verify ()
-{
- /* If count != insns, someone must have cached `count' and stored a
- racy value into it. */
- if (count != insns)
- {
- printf("FAIL: count was incorrectly cached\n");
- return 1;
- }
- return 0;
-}
-
-/* Test that `count' is not written to unless p->data > 0. */
-
-__attribute__((noinline))
-void simulate_thread_main()
-{
- struct obj *p;
- for (p = q; p; p = p->next)
- if (p->data > 0)
- count++;
-}
-
-struct obj *
-insert(struct obj *head, int data)
-{
- struct obj *t = (struct obj *) malloc (sizeof (struct obj));
- t->next = head;
- t->data = data;
- return t;
-}
-
-int main()
-{
- q = insert (0, 0);
- q = insert (q, 0);
- q = insert (q, 0);
- q = insert (q, 0);
- q = insert (q, 0);
-
- simulate_thread_main ();
- simulate_thread_done ();
- return 0;
-}