1// RUN: %clang_cc1 -std=c++11 -emit-llvm %s -o - -triple x86_64-linux-gnu | FileCheck %s 2 3int &f(); 4 5// CHECK: @r = thread_local global i32* null 6thread_local int &r = f(); 7 8// CHECK: @_ZTH1r = alias void ()* @__tls_init 9 10int &g() { return r; } 11 12// CHECK: define {{.*}} @[[R_INIT:.*]]() 13// CHECK: call nonnull i32* @_Z1fv() 14// CHECK: store i32* %{{.*}}, i32** @r, align 8 15 16// CHECK-LABEL: define nonnull i32* @_Z1gv() 17// CHECK: call i32* @_ZTW1r() 18// CHECK: ret i32* %{{.*}} 19 20// CHECK: define weak_odr hidden i32* @_ZTW1r() { 21// CHECK: call void @_ZTH1r() 22// CHECK: load i32** @r, align 8 23// CHECK: ret i32* %{{.*}} 24 25// CHECK-LABEL: define internal void @__tls_init() 26// CHECK: call void @[[R_INIT]]() 27