| /* { dg-do compile } */ |
| /* { dg-require-effective-target fpic } */ |
| /* { dg-options "-O2 -fpic -ftls-model=global-dynamic" } */ |
| /* { dg-require-effective-target tls } */ |
| |
| extern __thread long e1; |
| extern __thread int e2; |
| static __thread long s1; |
| static __thread int s2; |
| |
| long *ae1 (void) |
| { |
| return &e1; |
| } |
| |
| int *ae2 (void) |
| { |
| return &e2; |
| } |
| |
| long *as1 (void) |
| { |
| return &s1; |
| } |
| |
| int *as2 (void) |
| { |
| return &s2; |
| } |
| |
| long ge1 (void) |
| { |
| return e1; |
| } |
| |
| int ge2 (void) |
| { |
| return e2; |
| } |
| |
| long gs1 (void) |
| { |
| return s1; |
| } |
| |
| int gs2 (void) |
| { |
| return s2; |
| } |
| |
| long ge3 (void) |
| { |
| return e1 + e2; |
| } |
| |
| long gs3 (void) |
| { |
| return s1 + s2; |
| } |
| |
| long ge4 (void) |
| { |
| if (0) |
| return e1; |
| return e2; |
| } |
| |
| long gs4 (void) |
| { |
| if (0) |
| return s1; |
| return s2; |
| } |