From: Aaron Ballman Date: Wed, 18 Nov 2015 18:37:29 +0000 (+0000) Subject: Removing the AST matcher test for thread_local storage duration. Not all platforms... X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=889279f1c6fb3fcc284138d30d509e9abdff6ad3;p=clang Removing the AST matcher test for thread_local storage duration. Not all platforms support TLS, and on platforms that do not support it, use of thread_local causes an error. Since there's no way to determine whether the testing platform supports TLS, there's no way to know whether the test is safe to run or not. I will explore ways to enable this test, but this will appease at least one more build bot. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@253486 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/unittests/ASTMatchers/ASTMatchersTest.cpp b/unittests/ASTMatchers/ASTMatchersTest.cpp index 6d81bd88b9..2433d9faf1 100644 --- a/unittests/ASTMatchers/ASTMatchersTest.cpp +++ b/unittests/ASTMatchers/ASTMatchersTest.cpp @@ -1357,22 +1357,22 @@ TEST(Matcher, VarDecl_Storage) { TEST(Matcher, VarDecl_StorageDuration) { std::string T = - "void f() { int x; static int y; thread_local int z; } int a;"; + "void f() { int x; static int y; } int a;"; EXPECT_TRUE(matches(T, varDecl(hasName("x"), hasAutomaticStorageDuration()))); EXPECT_TRUE( notMatches(T, varDecl(hasName("y"), hasAutomaticStorageDuration()))); - EXPECT_TRUE( - notMatches(T, varDecl(hasName("z"), hasAutomaticStorageDuration()))); EXPECT_TRUE( notMatches(T, varDecl(hasName("a"), hasAutomaticStorageDuration()))); EXPECT_TRUE(matches(T, varDecl(hasName("y"), hasStaticStorageDuration()))); EXPECT_TRUE(matches(T, varDecl(hasName("a"), hasStaticStorageDuration()))); EXPECT_TRUE(notMatches(T, varDecl(hasName("x"), hasStaticStorageDuration()))); - EXPECT_TRUE(notMatches(T, varDecl(hasName("z"), hasStaticStorageDuration()))); - EXPECT_TRUE(matches(T, varDecl(hasName("z"), hasThreadStorageDuration()))); + // FIXME: It is really hard to test with thread_local itself because not all + // targets support TLS, which causes this to be an error depending on what + // platform the test is being run on. We do not have access to the TargetInfo + // object to be able to test whether the platform supports TLS or not. EXPECT_TRUE(notMatches(T, varDecl(hasName("x"), hasThreadStorageDuration()))); EXPECT_TRUE(notMatches(T, varDecl(hasName("y"), hasThreadStorageDuration()))); EXPECT_TRUE(notMatches(T, varDecl(hasName("a"), hasThreadStorageDuration())));