diff options
Diffstat (limited to 'gcc/testsuite/obj-c++.dg/torture/tls/thr-init-3.mm')
-rw-r--r-- | gcc/testsuite/obj-c++.dg/torture/tls/thr-init-3.mm | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/gcc/testsuite/obj-c++.dg/torture/tls/thr-init-3.mm b/gcc/testsuite/obj-c++.dg/torture/tls/thr-init-3.mm new file mode 100644 index 000000000..29768886a --- /dev/null +++ b/gcc/testsuite/obj-c++.dg/torture/tls/thr-init-3.mm @@ -0,0 +1,41 @@ +/* { dg-do run } */ +/* { dg-require-effective-target tls } */ +/* { dg-add-options tls } */ +/* { dg-xfail-run-if "Needs OBJC2 ABI" { *-*-darwin* && { lp64 && { ! objc2 } } } { "-fnext-runtime" } { "" } } */ +/* { dg-additional-sources "../../../objc-obj-c++-shared/Object1.mm" } */ + +#include "../../../objc-obj-c++-shared/Object1.h" +extern "C" { +extern void abort (); +} + +@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 ) + abort () ; + + return 0; +} |