aboutsummaryrefslogtreecommitdiffstats
path: root/src/libs/3rdparty/cplusplus/Keywords.cpp
diff options
context:
space:
mode:
authorOrgad Shaneh <orgad.shaneh@audiocodes.com>2013-11-24 18:25:32 +0200
committerOrgad Shaneh <orgads@gmail.com>2013-11-26 09:46:10 +0100
commiteac518aee6ea7173e5462fe16768ebb1b3f54b29 (patch)
treeb5f2c104bce62aa17b00d4da7ba809e91785566d /src/libs/3rdparty/cplusplus/Keywords.cpp
parent06612ece77a4208d6366265d00e8614eb5c803ff (diff)
C++: Support __thread and thread_local
Task-number: QTCREATORBUG-7679 Change-Id: I794f52b2bcfb6c78ceef86ec53b6ed32b3d53d9f Reviewed-by: Orgad Shaneh <orgads@gmail.com> Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
Diffstat (limited to 'src/libs/3rdparty/cplusplus/Keywords.cpp')
-rw-r--r--src/libs/3rdparty/cplusplus/Keywords.cpp36
1 files changed, 36 insertions, 0 deletions
diff --git a/src/libs/3rdparty/cplusplus/Keywords.cpp b/src/libs/3rdparty/cplusplus/Keywords.cpp
index 91c9ffc312..9bce1ff3f8 100644
--- a/src/libs/3rdparty/cplusplus/Keywords.cpp
+++ b/src/libs/3rdparty/cplusplus/Keywords.cpp
@@ -803,6 +803,17 @@ static inline int classify8(const char *s, LanguageFeatures features)
}
}
}
+ else if (s[3] == 'h') {
+ if (s[4] == 'r') {
+ if (s[5] == 'e') {
+ if (s[6] == 'a') {
+ if (s[7] == 'd') {
+ return T___THREAD;
+ }
+ }
+ }
+ }
+ }
}
}
}
@@ -1443,6 +1454,31 @@ static inline int classify12(const char *s, LanguageFeatures features)
}
}
}
+ else if (features.cxx11Enabled && s[0] == 't') {
+ if (s[1] == 'h') {
+ if (s[2] == 'r') {
+ if (s[3] == 'e') {
+ if (s[4] == 'a') {
+ if (s[5] == 'd') {
+ if (s[6] == '_') {
+ if (s[7] == 'l') {
+ if (s[8] == 'o') {
+ if (s[9] == 'c') {
+ if (s[10] == 'a') {
+ if (s[11] == 'l') {
+ return T_THREAD_LOCAL;
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
return T_IDENTIFIER;
}