1*67e74705SXin Li // RUN: %clang_cc1 -fsyntax-only -verify %s 2*67e74705SXin Li 3*67e74705SXin Li #include "Inputs/cuda.h" 4*67e74705SXin Li g1(int x)5*67e74705SXin Li__global__ void g1(int x) {} 6*67e74705SXin Li t1(T arg)7*67e74705SXin Litemplate <typename T> void t1(T arg) { 8*67e74705SXin Li g1<<<arg, arg>>>(1); 9*67e74705SXin Li } 10*67e74705SXin Li h1(int x)11*67e74705SXin Livoid h1(int x) {} h2(int x)12*67e74705SXin Liint h2(int x) { return 1; } 13*67e74705SXin Li main(void)14*67e74705SXin Liint main(void) { 15*67e74705SXin Li g1<<<1, 1>>>(42); 16*67e74705SXin Li g1(42); // expected-error {{call to global function g1 not configured}} 17*67e74705SXin Li g1<<<1>>>(42); // expected-error {{too few execution configuration arguments to kernel function call}} 18*67e74705SXin Li g1<<<1, 1, 0, 0, 0>>>(42); // expected-error {{too many execution configuration arguments to kernel function call}} 19*67e74705SXin Li 20*67e74705SXin Li t1(1); 21*67e74705SXin Li 22*67e74705SXin Li h1<<<1, 1>>>(42); // expected-error {{kernel call to non-global function h1}} 23*67e74705SXin Li 24*67e74705SXin Li int (*fp)(int) = h2; 25*67e74705SXin Li fp<<<1, 1>>>(42); // expected-error {{must have void return type}} 26*67e74705SXin Li 27*67e74705SXin Li g1<<<undeclared, 1>>>(42); // expected-error {{use of undeclared identifier 'undeclared'}} 28*67e74705SXin Li } 29