summaryrefslogtreecommitdiffstats
path: root/clang/lib/AST/Decl.cpp
diff options
context:
space:
mode:
authorReid Kleckner <reid@kleckner.net>2014-05-01 03:16:47 +0000
committerReid Kleckner <reid@kleckner.net>2014-05-01 03:16:47 +0000
commit7d6d2705f68d2540bc03682844ecb46f4513799d (patch)
tree438fa44283be5abd0a4be1a4b6c42c5a776192ad /clang/lib/AST/Decl.cpp
parentac64060c80120c0910f07c452fa38aa836b43860 (diff)
downloadbcm5719-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.cpp15
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();
OpenPOWER on IntegriCloud