diff options
Diffstat (limited to 'gcc/testsuite/objc.dg/torture/tls/thr-init-3.m')
-rw-r--r-- | gcc/testsuite/objc.dg/torture/tls/thr-init-3.m | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/gcc/testsuite/objc.dg/torture/tls/thr-init-3.m b/gcc/testsuite/objc.dg/torture/tls/thr-init-3.m new file mode 100644 index 000000000..b52c87391 --- /dev/null +++ b/gcc/testsuite/objc.dg/torture/tls/thr-init-3.m @@ -0,0 +1,39 @@ +/* { dg-do run } */ +/* { dg-require-effective-target tls_runtime } */ +/* { dg-add-options tls } */ +/* { dg-xfail-run-if "Needs OBJC2 ABI" { *-*-darwin* && { lp64 && { ! objc2 } } } { "-fnext-runtime" } { "" } } */ +/* { dg-additional-sources "../../../objc-obj-c++-shared/Object1.m" } */ + +#include "../../../objc-obj-c++-shared/Object1.h" +extern void _exit(int); + +@interface tsObj: Object { + int ai ; +} + +- (int) fa:(int) n; + +@end + +@implementation tsObj + +- (int) fa:(int) n +{ +static __thread int as = 3; + as += n ; + return as ; +} + +@end + +int main (int ac, char *av[]) +{ + int a ; + tsObj *to = [tsObj new]; + + a = [to fa:5]; + if ( a != 8 ) + _exit (-(__LINE__)) ; + + return 0; +} |