diff options
Diffstat (limited to 'test/CodeGenCXX/tls-init-funcs.cpp')
-rw-r--r-- | test/CodeGenCXX/tls-init-funcs.cpp | 26 |
1 files changed, 25 insertions, 1 deletions
diff --git a/test/CodeGenCXX/tls-init-funcs.cpp b/test/CodeGenCXX/tls-init-funcs.cpp index 17299dc..d47329c 100644 --- a/test/CodeGenCXX/tls-init-funcs.cpp +++ b/test/CodeGenCXX/tls-init-funcs.cpp @@ -1,10 +1,34 @@ -// RUN: %clang_cc1 -triple x86_64-apple-macosx10.8 -std=c++11 -S -emit-llvm %s -o - | FileCheck %s +// RUN: %clang_cc1 -triple x86_64-apple-macosx10.8 -std=c++1y -S -emit-llvm %s -o - | FileCheck %s // CHECK: @a = internal thread_local global +// CHECK: @_Z2vtIiE = internal thread_local global i32 5 +// CHECK: @_ZZ3inlvE3loc = linkonce_odr thread_local global i32 0 // CHECK: @_tlv_atexit({{.*}}@_ZN1AD1Ev +// CHECK: call i32* @_ZTW3ext() +// CHECK: declare i32* @_ZTW3ext() +// CHECK: define weak i32* @_ZTW2vtIiE() +// CHECK: define weak i32* @_ZTW2vtIvE() +// CHECK: define {{.*}} @_ZTW1a struct A { ~A(); }; thread_local A a; + +extern thread_local int ext; +int &get_ext() { return ext; } + +template <typename T> +thread_local int vt = 5; + +int get_vt() { return vt<int>; } + +inline int &inl() { + thread_local int loc; + return loc; +} +int &use_inl() { return inl(); } + +template int vt<void>; +int &get_vt_void() { return vt<void>; } |