1 /* { dg-do link { target { ! int16 } } } */
2 /* { dg-options "--param allow-store-data-races=0" } */
3 /* { dg-final { simulate-thread } } */
6 #include "../../gcc.dg/simulate-thread/simulate-thread.h"
8 /* Test that we don't store past VAR.K. */
15 volatile unsigned char c
[2];
18 static int global
= 0;
20 void simulate_thread_other_threads()
23 var
.c
[0] = global
% 256;
24 var
.c
[1] = global
% 256;
27 int simulate_thread_step_verify()
29 if (var
.c
[0] != global
% 256
30 || var
.c
[1] != global
% 256)
32 printf("FAIL: invalid intermediate result for <var.c[]>.\n");
38 int simulate_thread_final_verify()
42 printf("FAIL: invalid final result\n");
48 __attribute__((noinline
))
49 void simulate_thread_main()
56 simulate_thread_main();
57 simulate_thread_done();