diff options
Diffstat (limited to 'clang/test')
-rw-r--r-- | clang/test/CodeGenCXX/mangle-lambdas.cpp | 28 | ||||
-rw-r--r-- | clang/test/SemaCXX/vartemplate-lambda.cpp | 2 | ||||
-rw-r--r-- | clang/test/SemaTemplate/instantiate-static-var.cpp | 2 |
3 files changed, 7 insertions, 25 deletions
diff --git a/clang/test/CodeGenCXX/mangle-lambdas.cpp b/clang/test/CodeGenCXX/mangle-lambdas.cpp index d49ed4b2a5e..15987ebe46b 100644 --- a/clang/test/CodeGenCXX/mangle-lambdas.cpp +++ b/clang/test/CodeGenCXX/mangle-lambdas.cpp @@ -26,24 +26,6 @@ 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;}(), @@ -136,7 +118,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 @@ -146,23 +128,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 +// CHECK-LABEL: define internal void @__cxx_global_var_init.1() // 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 +// CHECK-LABEL: define internal void @__cxx_global_var_init.2() // 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 +// CHECK-LABEL: define internal void @__cxx_global_var_init.3() // 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 +// CHECK-LABEL: define internal void @__cxx_global_var_init.4 // CHECK: call i32 @"_ZNK13StaticMembersIdE3$_2clEv" // CHECK-LABEL: define internal i32 @"_ZNK13StaticMembersIdE3$_2clEv" // CHECK: ret i32 42 diff --git a/clang/test/SemaCXX/vartemplate-lambda.cpp b/clang/test/SemaCXX/vartemplate-lambda.cpp index 6744968bcc4..5b91e232e3a 100644 --- a/clang/test/SemaCXX/vartemplate-lambda.cpp +++ b/clang/test/SemaCXX/vartemplate-lambda.cpp @@ -8,7 +8,7 @@ template<typename T> auto v1 = [](int a = T(1)) { return a; }(); struct S { template<class T> - static constexpr T t = [](int f = T(7)){return f;}(); // expected-error{{constexpr variable 't<int>' must be initialized by a constant expression}} expected-note{{cannot be used in a constant expression}} + static constexpr T t = [](int f = T(7)){return f;}(); // expected-error{{constexpr variable 't<int>' must be initialized by a constant expression}} expected-error{{a lambda expression may not appear inside of a constant expression}} expected-note{{cannot be used in a constant expression}} }; template <typename X> diff --git a/clang/test/SemaTemplate/instantiate-static-var.cpp b/clang/test/SemaTemplate/instantiate-static-var.cpp index 547470db5c5..648ee4153fd 100644 --- a/clang/test/SemaTemplate/instantiate-static-var.cpp +++ b/clang/test/SemaTemplate/instantiate-static-var.cpp @@ -5,7 +5,7 @@ template<typename T, T Divisor> class X { public: - static const T value = 10 / Divisor; // expected-error{{in-class initializer for static data member is not a constant expression}} expected-warning {{division by zero}} + static const T value = 10 / Divisor; // expected-error{{in-class initializer for static data member is not a constant expression}} }; int array1[X<int, 2>::value == 5? 1 : -1]; |