aboutsummaryrefslogtreecommitdiff
path: root/src/ast_render.cpp
diff options
context:
space:
mode:
authorAndrew Kelley <andrew@ziglang.org>2019-02-06 13:48:04 -0500
committerAndrew Kelley <andrew@ziglang.org>2019-02-06 13:48:04 -0500
commitb1775ca168e0bcfba6753346c5226881da49c6c4 (patch)
treedc8a194940eca72dc20b692d170a9c1d2a6a4a31 /src/ast_render.cpp
parent8c6fa982cd0a02775264b616c37da9907cc603bb (diff)
downloadzig-b1775ca168e0bcfba6753346c5226881da49c6c4.tar.gz
zig-b1775ca168e0bcfba6753346c5226881da49c6c4.zip
thread local storage working for linux x86_64
Diffstat (limited to 'src/ast_render.cpp')
-rw-r--r--src/ast_render.cpp7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/ast_render.cpp b/src/ast_render.cpp
index 994ba5f5b1..34a7faa2a5 100644
--- a/src/ast_render.cpp
+++ b/src/ast_render.cpp
@@ -132,6 +132,10 @@ static const char *const_or_var_string(bool is_const) {
return is_const ? "const" : "var";
}
+static const char *thread_local_string(Token *tok) {
+ return (tok == nullptr) ? "" : "threadlocal ";
+}
+
const char *container_string(ContainerKind kind) {
switch (kind) {
case ContainerKindEnum: return "enum";
@@ -554,8 +558,9 @@ static void render_node_extra(AstRender *ar, AstNode *node, bool grouped) {
{
const char *pub_str = visib_mod_string(node->data.variable_declaration.visib_mod);
const char *extern_str = extern_string(node->data.variable_declaration.is_extern);
+ const char *thread_local_str = thread_local_string(node->data.variable_declaration.threadlocal_tok);
const char *const_or_var = const_or_var_string(node->data.variable_declaration.is_const);
- fprintf(ar->f, "%s%s%s ", pub_str, extern_str, const_or_var);
+ fprintf(ar->f, "%s%s%s%s ", pub_str, extern_str, thread_local_str, const_or_var);
print_symbol(ar, node->data.variable_declaration.symbol);
if (node->data.variable_declaration.type) {