From cff22e508162acb4f031e560122099d6e3306d2f Mon Sep 17 00:00:00 2001 From: Masud Rahman Date: Wed, 8 Nov 2017 19:17:27 +0000 Subject: [PATCH] [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 --- clang/bindings/python/tests/cindex/test_tls_kind.py | 18 ++++++++++++++---- 1 file 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 6a03c0d..d0ee458 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 -- 2.7.4