1 /* { dg-do run { target tls_runtime } } */
2 /* { dg-options "-O2" } */
3 /* { dg-add-options tls } */
4 
5 __thread unsigned char tls_array[64];
6 
7 unsigned char
8 __attribute__ ((noinline))
tls_array_lookup_with_negative_constant(long long int position)9 tls_array_lookup_with_negative_constant(long long int position) {
10   return tls_array[position - 1];
11 }
12 
13 int
main()14 main ()
15 {
16   int i;
17 
18   for (i = 0; i < sizeof (tls_array) / sizeof (tls_array[0]); i++)
19     tls_array[i] = i;
20 
21   for (i = 0; i < sizeof (tls_array) / sizeof (tls_array[0]); i++)
22     if (i != tls_array_lookup_with_negative_constant (i + 1))
23       __builtin_abort ();
24   return 0;
25 }
26