xref: /llvm-project/clang/test/SemaSYCL/unique-stable-name-multiple-target-crash.cpp (revision cb66bf2c6d20da01ab57cb78ec5e5c0978b873be)
1 // RUN: %clang_cc1 %s %s -std=c++17 -triple x86_64-linux-gnu -fsycl-is-device -verify -fsyntax-only -Wno-unused
2 
3 // This would crash due to the double-inputs, since the 'magic static' use in
4 // the AST Context SCYL Filtering would end up caching an old version of the
5 // ASTContext object, which no longer exists in the second file's invocation.
6 //
7 // expected-no-diagnostics
8 class Empty {};
kernel(F)9 template <typename, typename F> __attribute__((sycl_kernel)) void kernel(F) {
10     __builtin_sycl_unique_stable_name(F);
11 }
12 
use()13 void use() {
14   [](Empty) {
15     auto lambda = []{};
16     kernel<class i>(lambda);
17   };
18 }
19