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