diff options
author | Masud Rahman <llvm@masudrahman.com> | 2017-11-08 19:17:27 +0000 |
---|---|---|
committer | Masud Rahman <llvm@masudrahman.com> | 2017-11-08 19:17:27 +0000 |
commit | cff22e508162acb4f031e560122099d6e3306d2f (patch) | |
tree | 8a3de857aa68665eef249a9e4eca249260586425 /clang/bindings | |
parent | ff4da375aedd220a023c2d9124c3eb80f8b7b01e (diff) |
[bindings] fix TLS test failure
Since cfe commit r237337, '__declspec(thread)' and 'thread_local' have
been the same since MSVC 2015. i.e. they are both considered to supply
a dynamic TLS kind, not a static TLS kind.
This test originally did not specify which version of MS compatibility
to assume. As a result, the test was brittle, since changing the
default compatibility version could break the test.
This commit adds a specific version when building up the flags used to
parse the translation unit, and tests both versions.
llvm-svn: 317706
Diffstat (limited to 'clang/bindings')
-rw-r--r-- | clang/bindings/python/tests/cindex/test_tls_kind.py | 18 |
1 files changed, 14 insertions, 4 deletions
diff --git a/clang/bindings/python/tests/cindex/test_tls_kind.py b/clang/bindings/python/tests/cindex/test_tls_kind.py index 6a03c0d5eee2..d0ee4587bc6f 100644 --- a/clang/bindings/python/tests/cindex/test_tls_kind.py +++ b/clang/bindings/python/tests/cindex/test_tls_kind.py @@ -27,11 +27,21 @@ _Thread_local int tls_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'] + flags = ['-fms-extensions', '-target', 'x86_64-unknown-windows-win32', + '-fms-compatibility-version=18'] tu = get_tu(""" -__declspec(thread) int tls_declspec; +__declspec(thread) int tls_declspec_msvc18; """, lang = 'cpp', flags=flags) - tls_declspec = get_cursor(tu.cursor, 'tls_declspec') - assert tls_declspec.tls_kind == TLSKind.STATIC + tls_declspec_msvc18 = get_cursor(tu.cursor, 'tls_declspec_msvc18') + assert tls_declspec_msvc18.tls_kind == TLSKind.STATIC + + flags = ['-fms-extensions', '-target', 'x86_64-unknown-windows-win32', + '-fms-compatibility-version=19'] + tu = get_tu(""" +__declspec(thread) int tls_declspec_msvc19; +""", lang = 'cpp', flags=flags) + + tls_declspec_msvc19 = get_cursor(tu.cursor, 'tls_declspec_msvc19') + assert tls_declspec_msvc19.tls_kind == TLSKind.DYNAMIC |