summaryrefslogtreecommitdiffstats
path: root/clang/bindings/python/tests
diff options
context:
space:
mode:
authorSaleem Abdulrasool <compnerd@compnerd.org>2017-09-13 02:15:09 +0000
committerSaleem Abdulrasool <compnerd@compnerd.org>2017-09-13 02:15:09 +0000
commit50bc565f3f5731032fd2966347d63ba2a7376b28 (patch)
tree1fd1700317b19e8ee141965c927a842339c599b6 /clang/bindings/python/tests
parentfeda6a04961dfabb0deed5148a7dd920b7cb1379 (diff)
downloadbcm5719-llvm-50bc565f3f5731032fd2966347d63ba2a7376b28.tar.gz
bcm5719-llvm-50bc565f3f5731032fd2966347d63ba2a7376b28.zip
libclang: expose `clang_getCursorTLSKind`
Introduce the 'TLS Kind' property of variable declarations through libclang. Additionally, provide a Python accessor for it, and test that functionality. Patch by Masud Rahman! llvm-svn: 313111
Diffstat (limited to 'clang/bindings/python/tests')
-rw-r--r--clang/bindings/python/tests/cindex/test_tls_kind.py37
1 files changed, 37 insertions, 0 deletions
diff --git a/clang/bindings/python/tests/cindex/test_tls_kind.py b/clang/bindings/python/tests/cindex/test_tls_kind.py
new file mode 100644
index 00000000000..6a03c0d5eee
--- /dev/null
+++ b/clang/bindings/python/tests/cindex/test_tls_kind.py
@@ -0,0 +1,37 @@
+
+from clang.cindex import TLSKind
+from clang.cindex import Cursor
+from clang.cindex import TranslationUnit
+
+from .util import get_cursor
+from .util import get_tu
+
+def test_tls_kind():
+ """Ensure that thread-local storage kinds are available on cursors."""
+
+ tu = get_tu("""
+int tls_none;
+thread_local int tls_dynamic;
+_Thread_local int tls_static;
+""", lang = 'cpp')
+
+ tls_none = get_cursor(tu.cursor, 'tls_none')
+ assert tls_none.tls_kind == TLSKind.NONE;
+
+ tls_dynamic = get_cursor(tu.cursor, 'tls_dynamic')
+ assert tls_dynamic.tls_kind == TLSKind.DYNAMIC
+
+ tls_static = get_cursor(tu.cursor, 'tls_static')
+ assert tls_static.tls_kind == TLSKind.STATIC
+
+ # The following case tests '__declspec(thread)'. Since it is a Microsoft
+ # specific extension, specific flags are required for the parser to pick
+ # these up.
+ flags = ['-fms-extensions', '-target', 'x86_64-unknown-windows-win32']
+ tu = get_tu("""
+__declspec(thread) int tls_declspec;
+""", lang = 'cpp', flags=flags)
+
+ tls_declspec = get_cursor(tu.cursor, 'tls_declspec')
+ assert tls_declspec.tls_kind == TLSKind.STATIC
+
OpenPOWER on IntegriCloud