diff options
| author | Saleem Abdulrasool <compnerd@compnerd.org> | 2017-09-13 02:15:09 +0000 |
|---|---|---|
| committer | Saleem Abdulrasool <compnerd@compnerd.org> | 2017-09-13 02:15:09 +0000 |
| commit | 50bc565f3f5731032fd2966347d63ba2a7376b28 (patch) | |
| tree | 1fd1700317b19e8ee141965c927a842339c599b6 /clang/bindings/python/tests | |
| parent | feda6a04961dfabb0deed5148a7dd920b7cb1379 (diff) | |
| download | bcm5719-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.py | 37 |
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 + |

