diff options
Diffstat (limited to 'test/CodeGenCXX/mangle-lambdas.cpp')
-rw-r--r-- | test/CodeGenCXX/mangle-lambdas.cpp | 28 |
1 files changed, 23 insertions, 5 deletions
diff --git a/test/CodeGenCXX/mangle-lambdas.cpp b/test/CodeGenCXX/mangle-lambdas.cpp index 15987ebe46bd..d49ed4b2a5e1 100644 --- a/test/CodeGenCXX/mangle-lambdas.cpp +++ b/test/CodeGenCXX/mangle-lambdas.cpp @@ -26,6 +26,24 @@ void call_inline_func() { inline_func(17); } +// CHECK-LABEL: define linkonce_odr i32* @_ZNK10inline_varMUlvE_clEv( +// CHECK: @_ZZNK10inline_varMUlvE_clEvE1n +inline auto inline_var = [] { + static int n = 5; + return &n; +}; + +int *use_inline_var = inline_var(); + +// CHECK-LABEL: define linkonce_odr i32* @_ZNK12var_templateIiEMUlvE_clEv( +// CHECK: @_ZZNK12var_templateIiEMUlvE_clEvE1n +template<typename T> auto var_template = [] { + static int n = 9; + return &n; +}; + +int *use_var_template = var_template<int>(); + struct S { void f(int = []{return 1;}() + []{return 2;}(), @@ -118,7 +136,7 @@ T StaticMembers<T>::z = accept_lambda([]{return 4;}); template<typename T> int (*StaticMembers<T>::f)() = []{return 5;}; -// CHECK-LABEL: define internal void @__cxx_global_var_init() +// CHECK-LABEL: define internal void @__cxx_global_var_init // CHECK: call i32 @_ZNK13StaticMembersIfE1xMUlvE_clEv // CHECK-NEXT: call i32 @_ZNK13StaticMembersIfE1xMUlvE0_clEv // CHECK-NEXT: add nsw @@ -128,23 +146,23 @@ int (*StaticMembers<T>::f)() = []{return 5;}; // CHECK: ret i32 2 template float StaticMembers<float>::x; -// CHECK-LABEL: define internal void @__cxx_global_var_init.1() +// CHECK-LABEL: define internal void @__cxx_global_var_init // CHECK: call i32 @_ZNK13StaticMembersIfE1yMUlvE_clEv // CHECK-LABEL: define linkonce_odr i32 @_ZNK13StaticMembersIfE1yMUlvE_clEv // CHECK: ret i32 3 template float StaticMembers<float>::y; -// CHECK-LABEL: define internal void @__cxx_global_var_init.2() +// CHECK-LABEL: define internal void @__cxx_global_var_init // CHECK: call i32 @_Z13accept_lambdaIN13StaticMembersIfE1zMUlvE_EEiT_ // CHECK: declare i32 @_Z13accept_lambdaIN13StaticMembersIfE1zMUlvE_EEiT_() template float StaticMembers<float>::z; -// CHECK-LABEL: define internal void @__cxx_global_var_init.3() +// CHECK-LABEL: define internal void @__cxx_global_var_init // CHECK: call {{.*}} @_ZNK13StaticMembersIfE1fMUlvE_cvPFivEEv // CHECK-LABEL: define linkonce_odr i32 ()* @_ZNK13StaticMembersIfE1fMUlvE_cvPFivEEv template int (*StaticMembers<float>::f)(); -// CHECK-LABEL: define internal void @__cxx_global_var_init.4 +// CHECK-LABEL: define internal void @__cxx_global_var_init // CHECK: call i32 @"_ZNK13StaticMembersIdE3$_2clEv" // CHECK-LABEL: define internal i32 @"_ZNK13StaticMembersIdE3$_2clEv" // CHECK: ret i32 42 |