1// RUN: %clang_cc1 -triple dxil-pc-shadermodel6.3-library -x hlsl -o - -fsyntax-only %s -verify 2 3// expected-error@+2 {{expected identifier}} 4// expected-error@+1 {{expected unqualified-id}} 5cbuffer { ... }; 6// expected-error@+1 {{expected '{'}} 7cbuffer missing_definition; 8// expected-error@+1 {{expected unqualified-id}} 9int cbuffer; 10// expected-error@+1 {{expected identifier}} 11cbuffer; 12 13// expected-error@+2 {{expected identifier}} 14// expected-error@+1 {{expected unqualified-id}} 15tbuffer { ... }; 16// expected-error@+1 {{expected '{'}} 17tbuffer missing_definition; 18// expected-error@+1 {{expected unqualified-id}} 19int tbuffer; 20// expected-error@+1 {{expected identifier}} 21tbuffer; 22 23// expected-error@+1 {{expected unqualified-id}} 24cbuffer A {}, B{} 25 26// cbuffer inside namespace is supported. 27namespace N { 28 cbuffer A { 29 float g; 30 } 31} 32 33cbuffer A { 34 // expected-error@+1 {{invalid declaration inside cbuffer}} 35 namespace N { 36 } 37} 38 39cbuffer A { 40 // expected-error@+1 {{invalid declaration inside cbuffer}} 41 cbuffer Nested { 42 } 43} 44 45struct S { 46 // expected-error@+1 {{expected member name or ';' after declaration specifiers}} 47 cbuffer what { 48 int y; 49 } 50}; 51 52void func() { 53 // expected-error@+1 {{expected expression}} 54 tbuffer derp { 55 int z; 56 } 57 58 decltype(derp) another { 59 int a; 60 } 61} 62 63// struct decl inside cb is supported. 64cbuffer A { 65 struct S2 { 66 float s; 67 }; 68 S2 s; 69} 70 71// function decl inside cb is supported. 72cbuffer A { 73 float foo_inside_cb() { return 1.2;} 74} 75