diff options
author | Reid Kleckner <reid@kleckner.net> | 2014-05-01 03:16:47 +0000 |
---|---|---|
committer | Reid Kleckner <reid@kleckner.net> | 2014-05-01 03:16:47 +0000 |
commit | 7d6d2705f68d2540bc03682844ecb46f4513799d (patch) | |
tree | 438fa44283be5abd0a4be1a4b6c42c5a776192ad /clang/lib/AST/Decl.cpp | |
parent | ac64060c80120c0910f07c452fa38aa836b43860 (diff) | |
download | bcm5719-llvm-7d6d2705f68d2540bc03682844ecb46f4513799d.tar.gz bcm5719-llvm-7d6d2705f68d2540bc03682844ecb46f4513799d.zip |
Add support for __declspec(thread) under -fms-extensions
Reviewers: rsmith
Differential Revision: http://reviews.llvm.org/D3551
llvm-svn: 207734
Diffstat (limited to 'clang/lib/AST/Decl.cpp')
-rw-r--r-- | clang/lib/AST/Decl.cpp | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/clang/lib/AST/Decl.cpp b/clang/lib/AST/Decl.cpp index e33e26b5165..b264be15edf 100644 --- a/clang/lib/AST/Decl.cpp +++ b/clang/lib/AST/Decl.cpp @@ -1646,6 +1646,21 @@ void VarDecl::setStorageClass(StorageClass SC) { VarDeclBits.SClass = SC; } +VarDecl::TLSKind VarDecl::getTLSKind() const { + switch (VarDeclBits.TSCSpec) { + case TSCS_unspecified: + if (hasAttr<ThreadAttr>()) + return TLS_Static; + return TLS_None; + case TSCS___thread: // Fall through. + case TSCS__Thread_local: + return TLS_Static; + case TSCS_thread_local: + return TLS_Dynamic; + } + llvm_unreachable("Unknown thread storage class specifier!"); +} + SourceRange VarDecl::getSourceRange() const { if (const Expr *Init = getInit()) { SourceLocation InitEnd = Init->getLocEnd(); |