diff options
Diffstat (limited to 'libmudflap/testsuite/libmudflap.cth/pass37-frag.c')
-rw-r--r-- | libmudflap/testsuite/libmudflap.cth/pass37-frag.c | 58 |
1 files changed, 0 insertions, 58 deletions
diff --git a/libmudflap/testsuite/libmudflap.cth/pass37-frag.c b/libmudflap/testsuite/libmudflap.cth/pass37-frag.c deleted file mode 100644 index 877803c..0000000 --- a/libmudflap/testsuite/libmudflap.cth/pass37-frag.c +++ /dev/null @@ -1,58 +0,0 @@ -#include <stdlib.h> -#include <stdio.h> -#include <pthread.h> -#include <sched.h> - -static void * -func (void *p) -{ - int *counter = (int *) p; - unsigned i; - - for (i=0; i<100; i++) - { - (*counter) ++; - { - int array[17]; - unsigned x = i % (sizeof(array)/sizeof(array[0])); - /* VRP could prove that x is within [0,16], but until then, the - following access will ensure that array[] is registered to - libmudflap. */ - array[x] = i; - } - sched_yield (); /* sleep (1); */ - } - - return (NULL); -} - - -int main () -{ - int rc; - unsigned i; - enum foo { NT=10 }; - pthread_t threads[NT]; - int counts[NT]; - - - for (i=0; i<NT; i++) - { - counts[i] = 0; - rc = pthread_create (& threads[i], NULL, func, (void *) & counts[i]); - if (rc) abort(); - } - - for (i=0; i<NT; i++) - { - rc = pthread_join (threads[i], NULL); - if (rc) abort(); - printf ("%d%s", counts[i], (i==NT-1) ? "\n" : " "); - } - - return 0; -} - -/* { dg-output "100 100 100 100 100 100 100 100 100 100" } */ -/* { dg-repetitions 20 } */ -/* { dg-timeout 10 } */ |