void test_capture_var() { template_capture_var<int>(); // OK template_capture_var<int&>(); // expected-note{{in instantiation of function template specialization 'template_capture_var<int &>' requested here}} Val<float> Obj; Obj.set(0.0f); // OK }
void test_capture_var() { // CHECK-5: define {{.*}} void @_Z20template_capture_varIiLj201EEvv // CHECK-5-NOT: } // CHECK-5: store i32* // CHECK-5: call void @__captured_stmt // CHECK-5-NEXT: ret void template_capture_var<int, 201>(); // CHECK-5: define {{.*}} void @_ZN3ValIfLi202EE3setEv // CHECK-5-NOT: } // CHECK-5: store %class.Val* // CHECK-5: call void @__captured_stmt // CHECK-5-NEXT: ret void Val<float, 202> Obj; Obj.set(); // CHECK-5: define {{.*}} void @_ZN3ValIfLi202EE3fooIdLi203EEEvT_ // CHECK-5-NOT: } // CHECK-5: store %class.Val* // CHECK-5: store double // CHECK-5: call void @__captured_stmt // CHECK-5-NEXT: ret void Obj.foo<double, 203>(1.0); }