================ @@ -25,20 +40,29 @@ int main() { auto lambda2 = [](int){}; auto lambda3 = [](double){}; - kernel<class K1>(lambda1); - kernel2<class K2>(lambda2); - kernel3<class K3>(lambda3); + kernel_wrapper(lambda1); + kernel2_wrapper(lambda2); + kernel3_wrapper(lambda3); // Ensure the kernels are named the same between the device and host // invocations. + kernel_wrapper([](){ (void)__builtin_sycl_unique_stable_name(decltype(lambda1)); (void)__builtin_sycl_unique_stable_name(decltype(lambda2)); (void)__builtin_sycl_unique_stable_name(decltype(lambda3)); + }); // Make sure the following 3 are the same between the host and device compile. // Note that these are NOT the same value as each other, they differ by the // signature. // CHECK: private unnamed_addr [[$ADDRSPACE]]constant [17 x i8] c"_ZTSZ4mainEUlvE_\00" // CHECK: private unnamed_addr [[$ADDRSPACE]]constant [17 x i8] c"_ZTSZ4mainEUliE_\00" // CHECK: private unnamed_addr [[$ADDRSPACE]]constant [17 x i8] c"_ZTSZ4mainEUldE_\00" + + // On Windows, ensure that we haven't broken the 'lambda numbering' for the + // lambda itself. + // WIN: define internal void @"??R<lambda_1 + // WIN: define internal void @"??R<lambda_2 + // WIN: define internal void @"??R<lambda_3 + // WIN: define internal void @"??R<lambda_4 ---------------- Fznamznon wrote:
I can see that these lines come from the downstream, but there is no WIN check prefix passed to FIleCheck tool meaning these checks are noop and have been like this for some time in the downstream as well. We could add the check prefix here but if they don't work, we need to add at least a FIXME comment. Also, I would probably merge https://github.com/llvm/llvm-project/pull/146854/files first and then rebase on top of it. This way your PR won't need to modify this test at all. https://github.com/llvm/llvm-project/pull/140282 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits