aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite/g++.dg/tls/pr85400.C
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/testsuite/g++.dg/tls/pr85400.C')
-rw-r--r--gcc/testsuite/g++.dg/tls/pr85400.C24
1 files changed, 24 insertions, 0 deletions
diff --git a/gcc/testsuite/g++.dg/tls/pr85400.C b/gcc/testsuite/g++.dg/tls/pr85400.C
new file mode 100644
index 00000000000..f8d1bceaca5
--- /dev/null
+++ b/gcc/testsuite/g++.dg/tls/pr85400.C
@@ -0,0 +1,24 @@
+// PR c++/85400
+// Testcase by Brian Vandenberg <phantall@gmail.com>
+
+// { dg-do link { target c++11 } }
+// { dg-require-effective-target fpic }
+// { dg-require-effective-target shared }
+// { dg-require-effective-target tls }
+// { dg-options "-shared -fPIC -O" }
+// { dg-add-options tls }
+
+struct Test
+{
+ int blah (int y)
+ {
+ thread_local int mything = 3;
+ mything = y > 0 ? y : mything;
+ return mything;
+ }
+};
+
+int stuff (Test& test, int y)
+{
+ return test.blah(y);
+}