[clang] Implement lifetime analysis for lifetime_capture_by(X) (#115921)
[llvm-project.git] / clang / test / SemaHLSL / cb_error.hlsl
blob133adeeb2068bbb9be4cae895830cb35a239f60d
1 // RUN: %clang_cc1 -triple dxil-pc-shadermodel6.3-library -x hlsl -o - -fsyntax-only %s -verify
3 // expected-note@+1 {{declared here}}
4 cbuffer a {
5   int x;
6 };
8 int foo() {
9   // expected-error@+1 {{'a' does not refer to a value}}
10   return sizeof(a);
13 // expected-error@+1 {{expected unqualified-id}}
14 template <typename Ty> cbuffer a { Ty f; };
16 // For back-compat reason, it is OK for multiple cbuffer/tbuffer use same name in hlsl.
17 // And these cbuffer name only used for reflection, cannot be removed.
18 cbuffer A {
19   float A;
22 cbuffer A {
23   float b;
26 tbuffer A {
27   float a;
30 float bar() {
31   // cbuffer/tbuffer name will not conflict with other variables.
32   return A;
35 cbuffer a {
36   // expected-error@+2 {{unknown type name 'oh'}}
37   // expected-error@+1 {{expected ';' after top level declarator}}
38   oh no!
39   // expected-warning@+1 {{missing terminating ' character}}
40   this isn't even valid HLSL code
41   despite seeming totally reasonable
42   once you understand that HLSL
43   is so flaming weird.
46 tbuffer B {
47   // expected-error@+1 {{unknown type name 'flaot'}}
48   flaot f;