diff options
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.c | 74 |
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; -} |